LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear);
int color = ContextCompat.getColor(getContext(), mColorResourceId);
linearLayout.setBackgroundColor(color);
iは、コードのこれらの行があります。それは保持します mColorResourceId
をR.color.category_numbers
- >は、ContextCompatクラスのgetColor()メソッドを使用する主な理由を説明していますか?
私はmColorResourceId
直接それがint
値を受け入れる方法にもかかわらず、色を変更しないのですsetBackgroundColor(mColorResourceId);
に渡しmColorResourceId = R.color.category_numbers
。
私の質問なぜこの余分なステップが必要ですか?int color = ContextCompat.getColor(getContext(), mColorResourceId);
色を変更するには?
リソースから色を設定したい場合、他の開発者は、Javaで色をハードコードしたり、ファイル/データベースから色をロードしたり、Webサービスの応答の一部として色を取得することができます、またはランダムに色を選択します。したがって、 'setBackgroundColor()'は、色のリソースIDだけでなく、* color *を取ります。 – CommonsWare