Что я на самом деле делаю, так это сохраняю SpannableString
в форме HTML
, но у него есть BackgroundColorSpan
с каналом aplha в своем цвете. Теперь я узнал (через испытания), что мой канал цвета aplha удаляется (из-за невозможности HTML
) из текста всякий раз, когда я пытаюсь его сохранить.
Теперь я хочу узнать, что есть ли способ извлечь все экземпляры BackgroundColorSpan
в SpannableString
и изменить их свойство цвета? Все экземпляры BackgroundColorSpan
имеют одинаковый цвет. Я просто хочу добавить альфа-канал к их цвету (изменив их цвет), прежде чем представлять текст пользователям.
Я нашел способ извлечь все 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);