color.xmlに指定した色をプログラムから指定する。【AndroidStudio】

今日はせこせこコーディングしていたので、あっさり(ザックリ)したものを。


プログラム上で、TextViewなどに背景色を指定しようとした場合、

すごく単純に書くと、想像通りの色にはならない。

((TextView)textView).setBackgroundColor(R.color.red);
 ※R.color.XXXの型も、setBackgroundColorの指定もintなのでエラーは発生しない

しかし、R.color.XXX は保有している定義のIDを取得するので色(Color)に紐づいた色の値(int)ではない。
そのため、Resourcesクラスで用意されているgetColorメソッドを使用して
R.color.XXXにて記載している値(16進数の色標記)をColorに紐づく値へ変更する必要がある。
((TextView)textView).setBackgroundColor(resources.getColor(R.color.red));

説明されれば、そりゃ正しく色とれないのは理解できますが
初心者にはこんな単純なことでも頭を悩ませてしまう…
リソースがらみの部分含め、基本的な部分がまだまだ理解できていないので
どこかでまとめて時間作って勉強したい。
(なにを学べば基本的な概念を理解できるのか、まずそこを知りたい。)

以上、本日の記録。



コメント

このブログの人気の投稿

Activity上に配置されたToolbarをFragment上から変更し、イベントを拾う方法【AndroidStudio】

AlertDialogのボタンをカスタマイズする【AndroidStudio】

レイアウトファイル上にIDが重複している場合の検索と、その有用性について【AndroidStudio】