web-dev-qa-db-ja.com

ビューの背景色を設定する方法

ビューの背景色(この場合はボタン)を設定しようとしています。

私はこのコードを使います:

// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

ボタンが画面から消えます。何が間違っていますか。また、どのビューでも背景色を変更する正しい方法は何ですか?

ありがとう。

166
Peter vdL

あなたはあなたのボタンを透明にしました。最初のバイトはアルファです。

v.setBackgroundColor(0xFF00FF00);をお試しください

271
rainhut

SetBackgoundColorを呼び出すと、ボーダー、コーナー、パディングなど、既存の背景リソースを上書き/削除します。既存の背景リソースの色を変更するのは...

View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);

さまざまな効果についてPorterDuff.Mode。*を試してください。

140
EddieB

これを行うためのいくつかの選択肢...

背景を緑色に設定します。

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));
114
Elenasys

次のようにして、16進数の色を任意のリソースに設定できます。

View.setBackgroundColor(Color.parseColor("#e7eecc"));
34
Vipul Patel
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

コードはボタンを緑色に設定しません。代わりに、ボタンをまったく見えなくします。

説明:色の16進値が間違っています。 Alphaの値が0の場合、色は見えなくなります。

完全な不透明度グリーンの場合、正しい16進値は0xFF00FF00です。 00からFFの間の任意のアルファ値は透明性を引き起こします。

16
malte kosian

また、ビューの背景色を変更する正しい方法は何ですか?

On anyViewname__? invalidate()呼び出しをやめるべきですが、持っているものは正しいです。

ただし、一部のViewsname__には既に背景があります。たとえばButtonname__は、背景がすでにあります。ボタン自体の表面です。この背景はStateListDrawablename__です。これは、Android SDKインストールのAndroid-2.1/data/res/drawable/btn_default.xmlにあります。それは言い換えれば、複数の濃度で利用可能な9パッチのビットマップ画像の束を指します。あなたはあなたの環境に優しい目標を達成するためにそれらすべてのクローンを作成して修正する必要があるでしょう。

つまり、Buttonname__の背景を変更しようとするよりも、別のUIパターンを見つけるほうがよいでしょう。

12
CommonsWare

追加してみてください。

setBackgroundColor(Color.parseColor("#FF0000"));
11
Long Rainbow

画面に表示される最初の色を設定するには、関連するViewにこのプロパティを追加して、適切なlayout.xml(より良いデザイン)でそれを行うこともできます。

Android:background="#FF00FF00"
11
JustinB

API最小16、ターゲット23で使用します

Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);

WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
6
Vostro

簡単に使えます:

view.setBackgroundColor(Color.parseColor("#FFFFFF"));
5

これは 質問 ビューの背景色を変更することについて話します。ある答えでは、実行時に背景色を変更する方法について説明しています。明らかに、あなたはスクリーン上の他のオブジェクトをどのように修正するかを調べるつもりですが、これは少なくともあなたがボタンクリックでビューの背景色を修正することを可能にすることによってあなたに良いスタートを与えるでしょう。

4
jbranchaud
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
4

Android 6以降では、ContextCompatを使用してください。

        view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));
3
Raluca Lucaci

簡単に使えます:

view.setBackgroundColor(Color.rgb(0, 198, 255));
view.setBackgroundColor(R.color.primaryColor);

前の色の値に色を追加するので、私は違う色になります。

私にとって効果的なのは、

view.setBackgroundResource(R.color.primaryColor);
0
meralon

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);

        ....


    }
0
ForWebTech