我有一个按钮:
<Button
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/male"
android:id="@+id/btn_mgen_m"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_tgl_btn_left"
android:textColor="#444444" />
我改变了它的颜色:
btnMgenM = (Button) findViewById(R.id.btn_mgen_m);
btnMgenM.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btnMgenM.setBackgroundColor(Color.parseColor("#dca8c3"));
}
});
背景颜色已正确更改但似乎删除了背景颜色。圆形半径,文本颜色和边框被删除 只剩下简单的彩色按钮。 我想在单击此按钮时更改背景颜色,但不会更改其他任何内容。
我该怎么做?
答案 0 :(得分:1)
试试这两行
btnMgenM.setBackgroundResource(0);
btnMgenM.setBackgroundColor(Color.parseColor("#dca8c3"));
答案 1 :(得分:0)
您可以执行以下操作:
在res/drawable
button_style.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorGreyFirst" />
<corners android:radius="16dp" />
<stroke
android:width="3dp"
android:color="@color/colorBlackTransparent" />
</shape>
</item>
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorGreyFirst" />
<corners android:radius="16dp" />
<stroke
android:width="3dp"
android:color="@color/colorBlackTransparent" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorGreyFirst" />
<corners android:radius="16dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/colorGrey" />
<corners android:radius="16dp" />
<stroke
android:width="3dp"
android:color="@color/colorGrey" />
</shape>
</item>
并在你的xml中:
<Button
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/male"
android:id="@+id/btn_mgen_m"
android:layout_gravity="center_horizontal"
android:background="@drawable/button_style"
android:textColor="#444444" />
并在您的color.xml
中,您可以指定颜色。
或者您可以这样做:
btnMgenM = (Button) findViewById(R.id.btn_mgen_m);
btnMgenM.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btnMgenM.setBackgroundColor(getResources().getColor(R.color.yourColor));
}
});
并将其添加到color.xml
<color name="yourColor"> #dca8c3</color>
希望它有所帮助。