3

重複の可能性:
Android-プログラムでボタンの色を設定する方法

プログラムでテーブル行を動的に追加し、それにボタンを追加しましたが、ボタンの色は変わりません。redbtnという名前のボタンの色を追加するためのXMLファイルを追加しました。アクティビティで追加すると機能しますが、プログラムでボタンのスタイルを追加しても色は変わりません。私に何ができる。

redbtn.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

 <item android:state_pressed="true">
 <shape>
  <solid android:color="#DF0101" /> 
  <stroke android:width="1dp" android:color="#ef4444" /> 
  <corners android:radius="3dp" /> 
  <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> 
  </shape>
  </item>
 <item>
<shape>
  <gradient android:startColor="#DF0101" android:endColor="#DF0101" android:angle="270" /> 
  <stroke android:width="1dp" android:color="#992f2f" /> 
  <corners android:radius="3dp" /> 
  <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> 
  </shape>
  </item>


</selector>

レイアウト:

<Button
              android:id="@+id/btn_spinner_user_search_select"
              style="?android:attr/buttonStyleSmall"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginBottom="5dp"
              android:layout_marginLeft="25dp"
              android:layout_marginTop="5dp"
              android:background="@drawable/redbtn"
              android:text="@string/btn_delete_user_search_user" />

プログラム内:

TableRow addcomponentrow=new TableRow(Deleteuser.this);
            addcomponentrow.setId(200);
            addcomponentrow.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

            Button Deletecomponentbtn=new Button(Deleteuser.this);
            Deletecomponentbtn.setText("Delete");
            Deletecomponentbtn.setId(200);
            Deletecomponentbtn.setPadding(10, 0, 20, 2);
            Deletecomponentbtn.setBackgroundColor(R.drawable.redbtn);
            addcomponentrow.addView(Deletecomponentbtn);

            userdetailTable.addView(addcomponentrow,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
4

6 に答える 6

1

できます..

Deletecomponentbtn.setForeground(Color.GREEN);
Deletecomponentbtn.setBackground(Color.GREEN);

hexcodeを使用している場合

 Deletecomponentbtn.setForeground(Color.parseColor("oxff00ff00"));
 Deletecomponentbtn.setBackground(Color.parseColor("oxff00ff00"));
于 2012-12-28T08:30:27.527 に答える
0

使用する

Deletecomponentbtn.setBackgroundResource(R.drawable.redbtn);

ボタンのさまざまな状態でredbtn.xmlを修正できます。

于 2012-12-28T09:38:09.843 に答える
0

これを使って、

Deletecomponentbtn.setBackgroundResource(R.drawable.redbtn);

それ以外の、

Deletecomponentbtn.setBackgroundColor(R.drawable.redbtn);

ありがとう。

于 2012-12-28T08:33:00.937 に答える
0

これを試してください(背景に画像を追加している場合):

  Deletecomponentbtn.setBackgroundDrawable(getApplicationContext().getResources().getDrawable(R.drawable.redbtn));
于 2012-12-28T08:01:21.153 に答える
0

setBackgroundColor は色の値 (argb, int) を取り、R.drawable.redbtn はリソース ID (int) です。

リソースから背景を適用したい場合、その ID を持っている場合は、setBackgroundResource(int resid) を使用する必要があります。

于 2012-12-28T08:24:55.027 に答える
0

試してみたい場合は、以下で説明するように、プログラムで色と16進コードを指定できます。

Deletecomponentbtn.setBackgroundColor(Color.parseColor("HexCode"));

(vatsalshah.co.in)

于 2012-12-28T08:24:05.477 に答える