0

TextView に動的にスタイルを設定したいと思います。それに基づいて、私が見つけたものは不可能のようです(最近何かが変更されない限り)。

わかりましたが、反対方向に作業するのはどうですか。元。次のスタイル定義があります。

<style name="MyTextStyle" parent="@android:style/Widget.Holo.TextView">
    <item name="android:textSize">@dimen/text_big</item>
    <item name="android:textColor">@android:color/holo_blue_light</item>
    <item name="android:textStyle">italic</item>
</style>

そして今、私は次のコード(そのようなもの)を持ちたいと思います:

myTextView.setTextColor (R.styles.MyTextStyle.getTextColor)

単純に、Javaコードで色を定義せず、xmlファイルから現在の値を読み取ります(ただし、xmlファイルからではなく、スタイル定義がどこでも同じであることを保証するためだけにstyles.xmlから)。

さらに、アプリのテーマを変更した場合に、コードで正しいスタイル定義が選択されると便利です。

どうやってするか?

もちろん、textSize と textStyle (イタリック、ボールドなど) についても同じことを繰り返したいと思います。

何か案が?

4

1 に答える 1

1

おそらく、自分の質問に答えるのは最善の考えではありませんが、答えを見つけたので、いつか誰かに役立つでしょう...

解決策は次のとおりです。

myTextView.setTextAppearance(myTextView.getContext(), R.styles.MyTextStyle);
于 2013-11-05T11:28:48.850 に答える