小编jos*_*has的帖子

从spannable CharSequence中删除字符

我在String中输入以下数据:"Hello#this#is#sample#text."

它为#字符之间的所有元素设置背景颜色.这是我到目前为止所得到的:

public static CharSequence colorBackground(CharSequence text) {

    Pattern pattern = Pattern.compile("#(.*?)#");

    Spannable spannable = new SpannableString( text );
    if( pattern != null )
    {
        Matcher matcher = pattern.matcher( text );
        while( matcher.find() )
        {
            int start = matcher.start();
            int end = matcher.end();
            CharacterStyle span = new BackgroundColorSpan(0xFF404040);
            spannable.setSpan( span, start, end, 0 );
        }
    }
    return spannable;
}
Run Code Online (Sandbox Code Playgroud)

设置背景颜色有效,但占位符字符#也有样式.如何在返回结果之前删除它们,因为CharSequence不存在方法ReplaceAll?

我使用此函数来设置ListView中的TextView行的样式.添加此样式功能后,在模拟器中感觉有点慢.也许我应该以其他方式处理它,例如使用自定义TextView和自定义绘制功能?

android

8
推荐指数
1
解决办法
8546
查看次数

一次向SpannableString添加多个样式

目前,我正在使用SpannableString为字符串的一部分设置文本和背景颜色,如下所示:

SpannableStringBuilder spanString = new SpannableStringBuilder(text);
spanString.setSpan( new ForegroundColorSpan(Color.RED), start, end, 0 );
spanString.setSpan( new BackgroundColorSpan(Color.GRAY), start, end, 0 );
Run Code Online (Sandbox Code Playgroud)

有没有办法将这两种样式组合成一个CharacterStyle对象并在一个命令中将其设置为文本?

android

8
推荐指数
1
解决办法
3001
查看次数

标签 统计

android ×2