1. ホーム
  2. android

[解決済み] TextViewの文字色をコードで設定する方法は?

2022-02-05 23:36:08

質問

XMLでは、文字色を設定するために textColor 属性のように android:textColor="#FF0000" . しかし、コーディングでどのように変更すればいいのでしょうか?

というようなことをやってみました。

holder.text.setTextColor(R.color.Red);

ここで holder は単なるクラスであり text は型 TextView . 赤は文字列で設定されたRGB値(#FF0000)です。

しかし、赤色ではなく別の色を表示しています。setTextColor()にはどのようなパラメータを渡すことができるのでしょうか?ドキュメントには、次のように書かれています。 int とありますが、リソースの参照値か何かでしょうか?

どのように解決するのですか?

を使用する必要があります。

holder.text.setTextColor(Color.RED);


から様々な関数を利用することができます。 Color クラスを使用しても、もちろん同じ効果を得ることができます。

  • Color.parseColor (マニュアル) (LEXが使っているような)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
    
  • Color.rgbColor.argb ( マニュアルrgb ) ( マニュアルargb ) (Ganapathyが使っているような)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
    
    
  • もちろん、色を定義したい場合は XML ファイルでは、このようにすることができます。

    <color name="errorColor">#f00</color>
    
    

    というのも getColor() 関数は非推奨です 1 のように使用する必要があります。

    ContextCompat.getColor(context, R.color.your_color);
    
    
  • このように、プレーンなHEXを挿入することも可能です。

    myTextView.setTextColor(0xAARRGGBB);
    
    

    最初にアルファチャンネルを持ち、次に色値を持つところ。

もちろん、完全なマニュアルを確認してください。 public class Color extends Object .


1 このコードも以前はここに入っていました。

textView.setTextColor(getResources().getColor(R.color.errorColor));

このメソッドはAndroid Mで非推奨になりました。 サポートライブラリのcontextCompat この例では、次のようになります。