コードで TextView のテキストの色を設定するにはどうすればいいですか? 質問する

コードで TextView のテキストの色を設定するにはどうすればいいですか? 質問する

textColorXML では、のように属性によってテキストの色を設定できますandroid:textColor="#FF0000"。しかし、コーディングによってそれを変更するにはどうすればよいでしょうか?

私は次のようなことを試しました:

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

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

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

ベストアンサー1

以下を使用する必要があります:

holder.text.setTextColor(Color.RED);

もちろん、クラスのさまざまな関数を使用してColor同じ効果を得ることもできます。

  • Color.parseColor (マニュアル)(LEX が使用するものと同様)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgbそしてColor.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);
    

    最初にアルファ チャネルがあり、次にカラー値があります。

もちろん完全なマニュアルもご覧ください。パブリッククラスColorはObjectを拡張します


1このコードも以前はここにありました:

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

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

おすすめ記事