これを今一年間把握しようとしています。私は開発したアプリに新しい機能を追加する準備ができているので、これまでの一時的な回避策がありましたが、問題は復活しました。Androidアプリで背景色を動的に設定するにはどうすればよいですか?
主な目標:ユーザーがアプリの背景として使用する色を実質的に選択できるようにしますか?
現在のイテレーション:描画可能なイメージが2つあり、緑色と青色があります。ユーザは、両者の間に切り替えることができる、だけで:
if (bgColor) {
getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_blue_background_simple));
}
else {
getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.custom_green_background));
}
}
はbgColorユーザが青に、デフォルトの緑色から背景を変更した場合はブール値です。
は今、私は色に切り替えるしようとしているということではなく、ドロウアブルは、私が試してみました:
LayoutInflater layInflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layInflate.inflate(R.layout.main_activity_layout, null);
mainLayout = (RelativeLayout) view.findViewById(R.id.mainActivityRelativeLayoutId);
mainLayout.setBackgroundResource(R.color.colorRed);
を、それは何もしません!
それで、描画可能なイメージで動作するようにしようとしていますが、color(type int)は描画可能ではありません!したがって、このコードはどちらも動作しません。
ジレンマと質問:私はカラーピッカーの設定/優先度を持っています。ユーザーは実質的に任意の色を選択することができ、int型の色として保存します。 それは成功したテキストの色で動作します:
textView.setTextColor(colorPickerColor);
はcolorPickerColorは、カラーピッカーの好み
から取得し、int型の変数ではなく、レイアウトやビューの背景を変更するためにそれを使用しようとすると、それは何もしません。定数/ハードコーディングされた色を設定しても、色は変わりません(上記のコードを参照)。色を使って背景を変更できる唯一の方法は、いずれかのドロウアブル(私のために働いていますが、選択可能な色ごとに個別のドロワブルを持たなければならないので非常に非効率的です。色の16進コードですが、コードの中に入れることは何もしません(ユーザーが選択できないので、まったく役に立たないので)。
int型の色をコードでプログラム/動的に指定して、レイアウトの背景色を変更する適切な方法は何ですか?私のアプリがサポートしているMin APIは14
注:私は検索しましたが、出てきたすべての結果は関連していなかったか、うまくいかなかった。
'view.setBackgroundColor(int color)'を試したことがありますか?使用例: 'mainLayout.setBackgroundColor(0xFF000000);' – Isaac
@Isaacは正しいです。先頭のFFを覚えていますので、完全に不透明です。 –
@isaacこれは何もしません。これはすでに私がやっていることではありませんか? –