Span开源库

Span 开源库

spannable

支持正则匹配/图文混排/图标/GIF 动画/自定义表情包。

qfarp

SimplifySpan

示例:

private fun getSpanText(  
    textview: TextView,  
    listener: OnClickableSpanListener  
): SpannableStringBuilder {  
    val linkNorTextColor = -0xb7c275  
    val linkPressBgColor = -0x783106  
  
    val spanBuild = SimplifySpanBuild()  
    spanBuild.append("无默认背景11]")  
        .append(  
            SpecialImageUnit(  
                applicationContext,  
                BitmapFactory.decodeResource(resources, R.drawable.level)  
            )  
                .setGravity(SpecialGravity.CENTER)  
  
        )  
        .append(  
            SpecialTextUnit("[点我点我000").setClickableUnit(  
                SpecialClickableUnit(  
                    textview,  
                    listener  
                ).setTag("1").setPressBgColor(-0xb000)  
            ).setTextColor(  
                Color.BLUE  
            )  
        )  
        .appendMultiClickable(  
            SpecialClickableUnit(textview, listener).setNormalTextColor(linkNorTextColor)  
                .setPressBgColor(linkPressBgColor),  
            " ",  
            SpecialImageUnit(  
                applicationContext,  
                BitmapFactory.decodeResource(resources, R.drawable.level),  
                80,  
                50  
            )  
                .setGravity(SpecialGravity.CENTER),  
            SpecialTextUnit(" 用户名 ")  
        )  
        .append(  
            SpecialTextUnit("[点我点我1").setClickableUnit(  
                SpecialClickableUnit(  
                    textview,  
                    listener  
                ).setTag("1").setPressBgColor(-0xb000)  
            ).setTextColor(  
                Color.BLUE  
            )  
        )  
        .append("哈哈哈")  
        .append(  
            SpecialTextUnit("[括号内测试富文本跨行显示,颜色红色]").setClickableUnit(  
                SpecialClickableUnit(  
                    textview,  
                    listener  
                ).setTag("1").setPressBgColor(-0xb000)  
            ).setTextColor(Color.RED)  
        )  
        .append("无默认背景显示下划线")  
        .append(  
            SpecialImageUnit(  
                applicationContext,  
                BitmapFactory.decodeResource(resources, R.drawable.level)  
            )  
                .setGravity(SpecialGravity.CENTER)  
  
        )  
        .append(  
            SpecialTextUnit("点我点我2").setClickableUnit(  
                SpecialClickableUnit(textview, listener).setTag("2").showUnderline()  
                    .setPressBgColor(-0xb000).setPressTextColor(  
                        Color.WHITE  
                    )  
            ).setTextColor(-0xb000)  
        )  
        .append("有默认背景")  
        .append(  
            SpecialImageUnit(  
                applicationContext,  
                BitmapFactory.decodeResource(resources, R.drawable.level),  
                120,  
                120  
            )  
                .setGravity(SpecialGravity.CENTER)  
  
        )  
        .append(  
            SpecialTextUnit("点我点我3").setClickableUnit(  
                SpecialClickableUnit(textview, listener).setTag("3").setPressBgColor(  
                    Color.BLUE  
                ).setPressTextColor(Color.WHITE)  
            ).setTextColor(-0xb000).setTextBackgroundColor(-0x783115)  
        )  
        .append(  
            SpecialImageUnit(  
                applicationContext,  
                BitmapFactory.decodeResource(resources, R.drawable.level),  
                180,  
                180  
            )  
                .setGravity(SpecialGravity.CENTER)  
  
        )  
        .append("我只是个结尾")  
    return spanBuild.build()  
}

spxxi

Html 富文本

xiyin 用的这个:[Android-Rich-text-Editor/ARE/are/src/main/java/com/chinalwb/are/android/inner/Html.java at master · chinalwb/Android-Rich-text-Editor · GitHub](https://github.com/chinalwb/Android-Rich-text-Editor/blob/master/ARE/are/src/main/java/com/chinalwb/are/android/inner/Html.java)