web-dev-qa-db-ja.com

背景色を設定し、android

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <stroke Android:width="1px" Android:color="#696969"/>
</shape>

このコードはボタンを動的に作成するために使用されます。問題は、背景色を設定し、背景ドローアブルも設定したいことです。

Button btnTag = new Button(alltable.this);
btnTag.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
                       LinearLayout.LayoutParams.WRAP_CONTENT));
try {
    btnTag.setWidth(130);
    btnTag.setBackground(getResources().getDrawable(R.color.blue));

} catch (Exception e){
    e.printStackTrace();
}

これは、btnの背景色を設定してから、ドローアブルを使用したいクラスです。

5
Usman Asif

Drawable(files_bg.xmlなど)フォルダーにリソースを作成し、レイアウトの背景として設定します。

レイヤーリストで2つのアイテムを使用します。1つは形状の単色用で、もう1つはビットマップ用です。

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
       <shape Android:shape="rectangle">
            <solid Android:color="@color/totalFilesBgColor" />
       </shape>
    </item>
    <item>
       <bitmap
            Android:src="@drawable/bg_icon"
            Android:tileMode="disabled" />
    </item>
</layer-list> 

そして今、レイアウトまたはあなたが使用しているところならどこでも、drwableをbakcgroundとして設定します。

<LinearLayout
       Android:layout_width="match_parent"
       Android:layout_height="match_parent"
       Android:background="@drawable/files_bg">

 </LinearLayout>
7
kj007

このファイル(rectangle.xml)はドローアブルフォルダに配置されます。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
<solid Android:color="#FF4081"/>
</shape>

コード内のこの行を変更します。

btnTag.setBackground(getResources().getDrawable(R.drawable.rectangle,null));\\API level 21 and higher, otherwise
 getResources().getDrawable(R.drawable.rectangle).
4

少し遅れましたが、同じ問題が発生し、以下に説明するように解決しました。

まず、ドローアブルを入手します。

Drawable d = getResources().getDrawable(R.drawable.shape_rectangle);

次に、カスタムカラーを適用します。

d.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);

次に、それをビュー/ボタンの背景として設定します。

btn.setBackground(d);
2
adriennoir

新しいドローアブルを作成し、それを背景に割り当てることができます。つまり.


Drawable drawable = new GradientDrawable();
drawable.shape = GradientDrawable.RECTANGLE;
drawable.setStroke(Utils.toPx(1), Color.parseColor("#696969") );
btnTag.setBackground(drawable);
0
Karan Goel