我实际上是在以SpannableString
的形式存储HTML
,但是它有一个BackgroundColorSpan
,它的颜色带有aplha通道。现在,我(通过试验)知道,每次尝试存储颜色时,我的颜色aplha通道(由于HTML
无法使用)都会从文本中消失。
现在我想知道的是,有一种方法可以提取BackgroundColorSpan
中的所有SpannableString
实例并更改其color属性吗?所有BackgroundColorSpan
实例的颜色都是相同的,我只想在向用户展示文本之前向其颜色添加Alpha通道(通过更改其颜色)。
我想出了一种使用BackgroundColorSpan
提取所有getSpans
实例的方法,但仍然找不到改变其颜色的方法。
以下是相关代码:
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);
答案 0 :(得分:0)
没关系,我得到了答案https://github.com/explosion/spaCy/pull/5238
我要做的就是删除当前范围并将其替换为我需要的颜色的google-services.json
。这是代码段。
BackgroundColorSpan
我只是不知道是否可以找到各个跨度的开始和结束。