1

TextView に緑色のフィードバック スターを表示する次のコードがあります。

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

トピックのデバイスの横でテストしたすべてのデバイスで動作します。

理由がわかりません。

大きな問題は、デバイスが私のものではないことです。また、いつデバイスをテストに戻せるかわからないため、バグを再現できません。

もう 1 つの問題は、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それらを処理する必要がありましたが、最終的にはすべてがはるかに簡単になりました. 証拠は、コードを削除しなければならなかったことです:)

これがSamsungデバイスでも機能するかどうかはわかりませんが、SamsungがRatingBar. デバイスを入手したらすぐにテストして結果を投稿しますが、これは私の側では許容できる解決策です。

于 2015-07-14T21:51:29.947 に答える