textColor
XML では、のように属性によってテキストの色を設定できます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例が示すとおりです。