MIT License

项目介绍

CarGuo/GSYRickText 是一个托管在 GitHub 上的开源项目,主要使用 Java 编写,采用 MIT License 许可证,目前获得 717 个 Star、104 次 Fork。

仓库全名
CarGuo/GSYRickText
开源许可证
MIT License
Star 数
717
Fork 数
104
未关闭 Issue
13

README 摘要

鸿蒙第三方迁移版本:https://gitee.com/tsohos/richtextohos 支持类似微博的文本效果,表情、@某人、话题、url链接等。DEMO同时演示了MVVM模式的使用。 状态 | 功能 支持|表情 支持|#话题 支持|@某人 支持|url与数字(可配置) 支持|点击效果 支持|自定义span效果 支持|表情、#话题与@某人编辑时整块删除 支持|表情、#话题与@某人编辑时选择复制限制整块选择。 支持|表情大小设置、居中显示 支持|MVVM(DataBing)。 支持|kotlin(demo与lib) 依赖方式 在project下的build.gradle添加 在module下的build.gradle添加 kotlin版本的依赖 DEMO效果图 旧版简书解析 旧版README QQ群,有兴趣的可以进来,群里视频项目的人居多,平时多吹水吐槽:174815284 。 使用方式参考demo 1、文本模式…

完整内容见 GitHub 原始 README 或本页 。

常见问题

GSYRickText 用什么语言开发?

主要使用 Java 编写,采用 MIT License 许可证,目前有 717 个 Star。

GSYRickText 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 GSYRickText 的源码?

可以直接克隆仓库:git clone https://github.com/CarGuo/GSYRickText.git;安装与运行步骤见仓库 README。

GSYRickText 最近还在维护吗?

仓库最近一次更新为 2024年10月16日,当前有 13 个未关闭 Issue;Star 数为 717,可作为社区活跃度的参考。

简要分析

热度分
1642
价值分
532
活跃状态
活跃

语言占比

Java
Kotlin

Release

README

鸿蒙第三方迁移版本:https://gitee.com/ts_ohos/richtext_ohos

支持类似微博的文本效果,表情、@某人、话题、url链接等。DEMO同时演示了MVVM模式的使用。

状态 功能
支持 表情
支持 #话题
支持 @某人
支持 url与数字(可配置)
支持 点击效果
支持 自定义span效果
支持 表情、#话题与@某人编辑时整块删除
支持 表情、#话题与@某人编辑时选择复制限制整块选择。
支持 表情大小设置、居中显示
支持 MVVM(DataBing)。
支持 kotlin(demo与lib)

Build Status

依赖方式

在project下的build.gradle添加

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

在module下的build.gradle添加

dependencies {
    compile 'com.github.CarGuo.RickText:textUtilsLib:v2.1.5'
}

kotlin版本的依赖

dependencies {
    compile 'com.github.CarGuo.RickText:textUtilsLib-kotlin:v2.1.5'
}

DEMO效果图

旧版简书解析

旧版README

QQ群,有兴趣的可以进来,群里视频项目的人居多,平时多吹水吐槽:174815284 。

公众号


使用方式参考demo

1、文本模式

1.1、RichTextView
richTextView = (RichTextView) findViewById(R.id.rich_text_2);
//直接使用RichTextView
richTextView.setAtColor(Color.RED);
richTextView.setTopicColor(Color.BLUE);
richTextView.setLinkColor(Color.YELLOW);
richTextView.setNeedNumberShow(true);
richTextView.setNeedUrlShow(true);
richTextView.setSpanAtUserCallBackListener(spanAtUserCallBack);
richTextView.setSpanTopicCallBackListener(spanTopicCallBack);
richTextView.setSpanUrlCallBackListener(spanUrlCallBack);
//所有配置完成后才设置text
richTextView.setRichText(content, nameList, topicModels);
1.2、普通TextView
//url点击回调
SpanUrlCallBack spanUrlCallBack = new SpanUrlCallBack() {
    @Override
    public void phone(String phone) {
        Toast.makeText(MainActivity.this, phone + " 被点击了", Toast.LENGTH_SHORT).show();
        richText.setHighlightColor(Color.TRANSPARENT);
    }

    @Override
    public void url(String url) {
        Toast.makeText(MainActivity.this, url + " 被点击了", Toast.LENGTH_SHORT).show();
        richText.setHighlightColor(Color.TRANSPARENT);
    }
};

//@点击回调
SpanAtUserCallBack spanAtUserCallBack = new SpanAtUserCallBack() {
    @Override
    public void onClick(UserModel userModel1) {
        Toast.makeText(MainActivity.this, userModel1.getUser_name() + " 被点击了", Toast.LENGTH_SHORT).show();
        richText.setHighlightColor(Color.TRANSPARENT);
    }
};

//话题点击回调
SpanTopicCallBack spanTopicCallBack = new SpanTopicCallBack() {
    @Override
    public void onClick(TopicModel topicModel) {
        Toast.makeText(MainActivity.this, topicModel.getTopicName() + " 被点击了", Toast.LENGTH_SHORT).show();
        richText.setHighlightColor(Color.TRANSPARENT);
    }
};

//配置TextView显示文本
RichTextBuilder richTextBuilder = new RichTextBuilder(this);
richTextBuilder.setContent(content)
        .setAtColor(Color.RED)
        .setLinkColor(Color.BLUE)
        .setTopicColor(Color.YELLOW)
        .setListUser(nameList)
        .setListTopic(topicModels)
        .setTextView(richText)
        .setSpanAtUserCallBack(spanAtUserCallBack)
        .setSpanUrlCallBack(spanUrlCallBack)
        .setSpanTopicCallBack(spanTopicCallBack)
        .build();

2、编辑模式(RichEditText)

richEditText = (RichEditText) findViewById(R.id.emoji_edit_text);
emojiLayout.setEditTextSmile(richEditText);
RichEditBuilder richEditBuilder = new RichEditBuilder();
richEditBuilder.setEditText(richEditText)
        .setTopicModels(topicModels)
        .setUserModels(nameList)
        .setColorAtUser("#FF00C0")
        .setColorTopic("#F0F0C0")
        .setEditTextAtUtilJumpListener(new OnEditTextUtilJumpListener() {
            @Override
            public void notifyAt() {
                JumpUtil.goToUserList(MainActivity.this, MainActivity.REQUEST_USER_CODE_INPUT);
            }

            @Override
            public void notifyTopic() {
                JumpUtil.goToTopicList(MainActivity.this, MainActivity.REQUEST_TOPIC_CODE_INPUT);
            }
        })
        .builder();

版本更新

v2.1.5 (2018-01-23)
  • 修复了ellipsize问题
v2.1.4 (2017-12-05)
  • 修复了一个特殊场景下让人🥚疼的问题。
  • 修复某些情况下删除按键导致的问题
v2.1.2 (2017-10-20)
  • 优化一些问题
  • 增加kotlin lib 与 kotlin demo
v2.1.1 (2017-09-19)
  • 增加表情居中功能的支持。
v2.1.0 (2017-09-17)
  • 修复了@和#输入存在的问题。

历史版本

License

MIT

评论

暂无评论