RichTextX
RichTextX一个帮助开发者实现Android图文混排编辑和显示的库。
开源地址:https://github.com/shine56/RichTextX
添加依赖
implementation 'com.shine56.richtextx:richtextx:1.0.4-beta'
文本编辑器使用方法
在布局文件中
像添加 EditText 一样在布局文件中文件中添加RichEditText
<com.shine56.richtextx.view.RichEditText
android:id="@+id/rich_edit_text"
android:textSize="16sp"
android:lineHeight="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
在kotlin文件中:
插入图片
val richEditText = findViewById<RichEditText>(R.id.rich_edit_text)
val image = richEditText.imageBuilder
.setImageUrl("imageUrl")
.setDrawableGet {
//获取drawable逻辑
}.create()
writeEdit.insertPhoto(image)
为图片设置点击事件和删除事件
val image = writeEdit.imageBuilder
.setImageUrl(it)
.setDrawableGet {
//获取drawable逻辑
}
.setOnImageCLickListener { view, imgUrl ->
//点击事件响应逻辑
}
.setOnImageDeleteListener { view, imgUrl ->
//删除事件响应逻辑
}
.create()
其它富文本操作
/**
* 加粗
*/
richEditText.setBold(true)
/**
* 缩进
*/
richEditText.indent()
/**
* 设置字号
*/
richEditText.setFontSize(28)
文本显示器使用方法
在布局文件中:
像添加 TextView 一样在布局文件中文件中添加RichTextView
<com.shine56.richtextx.view.RichTextView
android:id="@+id/rich_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在kotlin文件中:
显示htnl文本
//将editText的文本转成html字符串
val htmlText = Html.toHtml(richEditText.text)
//将html字符串显示在RichTextView
val image = writeEdit.imageBuilder
.setImageUrl(it)
.setDrawableGet {
//获取drawable逻辑
}.create()
val richTextView = findViewById<RichTextView>(R.id.rich_text_view)
richTextView.setTextFromHtml(htmlText, image)
补充说明
- 插入图片为其设置点击事件和删除事件时,事件响应区域如下图所示,点击黄色区域响应点击事件,点击右上角红色区域响应删除事件。
开源地址:https://github.com/shine56/RichTextX,有兴趣给个star