ビュー(この場合はボタン)の背景色を設定しようとしています。
私はこのコードを使用します:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
ボタンが画面から消えます。私は何を間違っていますか、そしてビューの背景色を変更する正しい方法は何ですか?
ありがとう。
ビュー(この場合はボタン)の背景色を設定しようとしています。
私はこのコードを使用します:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
ボタンが画面から消えます。私は何を間違っていますか、そしてビューの背景色を変更する正しい方法は何ですか?
ありがとう。
回答:
ボタンを透明にしました。最初のバイトはアルファです。
試す v.setBackgroundColor(0xFF00FF00);
0xff00ff00
、人間が読めるという利点もあります。ほとんどの開発者は、人間が読める形式のソリューションを好みます。
setBackgoundColorを呼び出すと、ボーダー、コーナー、パディングなど、既存のバックグラウンドリソースが上書きまたは削除されます。実行するのは、既存のバックグラウンドリソースの色を変更することです...
View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
さまざまな効果についてPorterDuff.Mode。*を試してください。
これを行ういくつかの選択肢...
背景を緑に設定します。
v.setBackgroundColor(0x00FF00);
背景をアルファ付きの緑に設定します。
v.setBackgroundColor(0xFF00FF00);
Color.GREEN定数で背景を緑に設定します。
v.setBackgroundColor(Color.GREEN);
Colors.xmlで定義する背景を緑に設定します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myGreen">#00FF00</color>
<color name="myGreenWithAlpha">#FF00FF00</color>
</resources>
そして使用:
v.setBackgroundResource(R.color.myGreen);
そして:
v.setBackgroundResource(R.color.myGreenWithAlpha);
またはより長い巻き:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
そして:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
getResources().getColor(...)
廃止予定しまっstackoverflow.com/questions/31842983/...
v.setBackgroundResource(R.color.myGreen);
使用する場合colors.xml
v.setBackgroundColor(0x00FF00);
彼らが機能していないと彼らが言う彼らのコードだけです。それが透明であることも期待します。
そして、ビューの背景色を変更する正しい方法は何ですか?
上のいずれかの View
?あなたが持っているものは正しいですが、あなたはinvalidate()
電話を切るべきです。
ただし、一部にはViews
すでに背景があります。Aは、Button
ボタン自体の面:例えば、既に背景を有しています。この背景はでありStateListDrawable
、android-2.1/data/res/drawable/btn_default.xml
Android SDKインストールに含まれています。これは、次に、複数の密度で利用可能な9パッチのビットマップ画像の束を指します。グリーン目標を達成するには、これらすべてを複製して変更する必要があります。
要するに、の背景を変更しようとするよりも、別のUIパターンを見つける方が良いでしょうButton
。
API min 16、ターゲット23で使用します
Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);
WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
あなたは簡単に使うことができます:
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
この質問では、ビューの背景色の変更について説明します。その答えの1つとして、実行時に背景色を変更する方法について説明されています。明らかに、画面上の他のオブジェクトを変更する方法を調べますが、これは、少なくともボタンをクリックしたときにビューの背景色を変更できるようにすることから始めるのに適しています。
あなたは簡単に使うことができます:
view.setBackgroundColor(Color.rgb(0, 198, 255));
でkotlinあなたはこのようにそれを行うことができます:
val backgroundColor = R.color.whatever_color_you_like
view.setBackgroundColor(getColorCompat(backgroundColor))
getColorCompat()
拡張関数はどこにありますか:
/**
* Extension method to provide simpler access to {@link ContextCompat#getColor(int)}.
*/
fun Context.getColorCompat(color: Int) = ContextCompat.getColor(this, color)
我々が持っているとしましょう原色の中values=>colors.xml
のように:
<resources>
<color name="primary">#FDD835</color>
</resources>
したがって、カスタムカラーを使用したい場合は、コンストラクタ/メソッドを使用しsetBackgroundColor(@ColorInt int Color)
た注釈@SuppressLint("ResourceAsColor")
が必要です。これは次のように使用されます。
@SuppressLint("ResourceAsColor")
public _LinearLayout(Context context) {
super(context);
// Formatting our layout : )
super.setBackgroundColor(R.color.primary);
....
}
上記の方法をすべて試しました。しかし、私は私が必要とするものを達成していません。これが私の試みです。色に16進コードを使用していて、画像の背景として色を設定したい場合、これはKotlinコードです。
val bitmap = Bitmap.createBitmap(30, 30, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val colorCode = "#ffffff"
canvas.drawColor(Color.parseColor(colorCode))
mImageViewLogo.setImageBitmap(bitmap)