【发布时间】:2020-05-04 08:29:46
【问题描述】:
我实际上正在做的是我以HTML 的形式存储SpannableString,但它有一个BackgroundColorSpan,它的颜色有一个aplha 通道。现在我(通过试验)知道,每当我尝试存储它时,我的颜色的 aplha 通道就会从文本中消失(由于无法使用HTML)。
现在我想知道的是,有没有一种方法可以提取 SpannableString 中的所有 BackgroundColorSpan 实例并更改它们的颜色属性?所有BackgroundColorSpan 实例都具有相同的颜色,我只想在向用户呈现文本之前为它们的颜色添加一个alpha 通道(通过更改它们的颜色)。
我想出了一种方法来使用getSpans 提取所有BackgroundColorSpan 实例,但我仍然找不到改变它们颜色的方法。
相关代码如下:
SpannableString spannableDescString = new SpannableString(trimTrailingWhitespace(Html.fromHtml(note.getDesc())));
BackgroundColorSpan[] highlightSpanArray = spannableDescString.getSpans(0,spannableDescString.length(),BackgroundColorSpan.class);
if(highlightSpanArray.length!=0){
for(BackgroundColorSpan item : highlightSpanArray){
//what should I put here to change every item's color
}
}
desc.setText(spannableDescString);
【问题讨论】:
标签: android background textview android-spannable