1

我有这段代码可以在 TextView 中显示绿色反馈星:

Spanned sp = Html.fromHtml("<font color=\"#00dd00\">★&lt;/font>");
tv.setText(sp);

它适用于我在主题中测试过的所有设备。

我不明白为什么。

一个大问题是设备不是我的,我不知道什么时候可以拿回来重新测试,所以我无法重现这个错误。

另一个问题是我用 Android 4.4.4 测试了几个模拟器,我找不到任何问题。

是否有另一种方式以更安全的方式显示彩色文本?当然星星是 5 并且可以以动态方式着色(灰色或绿色),否则不会有问题。

更详细地说:如果有 2 个绿星,代码是

Spanned sp = Html.fromHtml("<font color=\"#00dd00\">★&lt;/font><font color=\"#00dd00\">★&lt;/font>");
tv.setText(sp);

因为它是在<font color=\"#00dd00\">★&lt;/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”表示星星显示但不是绿色,因此似乎htmlcolor标签没有效果。

4

1 回答 1

0

@CommonsWare 建议的解决方案是将 TextView 替换为RatingBar

我必须创建自己的明星图片selector处理它们,但最后,一切都简单得多。证明是我不得不删除代码:)

我不知道这是否也适用于三星设备,但我认为三星并没有摆弄RatingBar. 拿到设备后,我会立即测试并发布结果,但就我而言,这是一个可以接受的解决方案。

于 2015-07-14T21:51:29.947 回答