Samsung Galaxy Tab 3 7.0 Android 4.4.4: TextView Html.fromHtml не работает
У меня есть этот код для отображения зеленых звезд обратной связи в TextView:
Spanned sp = Html.fromHtml("<font color=\"#00dd00\">★</font>");
tv.setText(sp);
и это работает на всех устройствах, которые я тестировал, кроме одного в теме.
Я не могу понять почему.
Большая проблема в том, что устройство не мое, и я не знаю, когда смогу вернуть его на тестирование снова, поэтому я не могу воспроизвести ошибку.
Другая проблема заключается в том, что я протестировал пару эмуляторов с Android 4.4.4 и не смог найти никаких проблем.
Есть ли другой способ показать цветной текст более безопасным способом? Конечно, звездам 5 и они могут быть окрашены в динамический цвет (серый или зеленый), иначе это не будет проблемой.
Чтобы быть более подробным: если есть 2 зеленые звезды, код
Spanned sp = Html.fromHtml("<font color=\"#00dd00\">★</font><font color=\"#00dd00\">★</font>");
tv.setText(sp);
потому что он создан в цикле, где <font color=\"#00dd00\">★</font>
постоянная
редактировать:
Это определение TextView
<TextView
android:id="@+id/txtThumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="40dp"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
android:text=""
android:textSize="@dimen/elv_group_thumbnail_text_size"/>
"It does not work
"означает, что звезды показаны, но не зеленые, поэтому кажется, что HTML color
тег не имеет никакого эффекта.
1 ответ
Решение, предложенное @CommonsWare, заключается в замене TextView на RatingBar.
Я должен был создать свои собственные звездные картины и selector
справиться с ними, но, в конце концов, все гораздо проще. Доказательство тому, что мне пришлось удалить код:)
Я не знаю, работает ли это на устройстве Samsung, но я не думаю, что Samsung поиграл с RatingBar
, Как только я получаю устройство, я тестирую и публикую результат, но пока это приемлемое решение с моей стороны.