背景色をプログラムで設定しようとしましたが、すべての色を設定すると背景は黒になりますが、アプリケーションのテーマのように色の背景は白になります。
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);
あなたはコードを見ることができますか?
私はあなたの質問を理解していませんでした…あなたが「私が私の色の一つ一つを設定するとき」とはどういう意味ですか?これを試してみてください(元の答えの "#fffff"を "#ffffff"に変更)。
yourView.setBackgroundColor(Color.parseColor("#ffffff"));
getResources()メソッドを使う必要があります。次のコードを試してください。
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white));
編集::
getResources.getColor()は推奨されていないので、次のように使用します。
root.setBackgroundColor(ContextCompat.getColor(this, R.color.white));
あなたが使用することができます
root.setBackgroundColor(0xFFFFFFFF);
または
root.setBackgroundColor(Color.parseColor("#ffffff"));
これまでの答えは推奨されなくなりました。色を正しく取得するにはContextCompat.getColor
を使用する必要があります。
root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
定義済みのAndroidカラーをいくつか使用するだけの場合は、Color.COLOR
を使用できます(COLOR
はBLACK
、WHITE
、RED
など)。
myView.setBackgroundColor(Color.GREEN);
それ以外の場合は、他の人が提案したようにすることができます
myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));
私は直接16進数の色を使うことを勧めません。カスタムカラーはすべてcolors.xmlに保存してください。
これはうまくいくはずです。
カラーリソースを取得するにはgetResources()。getColor(R.color.WHITE)を使用する必要があります。これはcolors.xmlリソースファイルに追加する必要があります。
View someView = findViewById(R.id.screen);
someView.setBackgroundColor(getResources().getColor(R.color.WHITE));
私の場合は、私のxmlリソースで色を設定するだったので、色は変わりませんでした。
色を設定した行を削除した後、それは完全にプログラム的に働いた
これは私がRecyclerViewでやった例です
final Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_icon).mutate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
holder.image.setBackground(drawable);
} else {
holder.image.setBackgroundDrawable(drawable);
}
Valuesフォルダの配下のcolors.xmlにカラーコードを保存する場合は、次のようにしてください。
root.setBackgroundColor(getResources().getColor(R.color.name));
name
は、<color/>
タグで宣言することを意味します。