如何更改标准按钮上的选择器/波纹颜色?

时间:2015-11-04 01:47:21

标签: android button themes selector

我在布局中使用标准按钮:

<Button
       android:id="@+id/earlier_button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="earlier"/>

我想出了如何改变它的颜色而不改变它的默认样式:

earlierButton = (Button) findViewById(R.id.earlier_button);
earlierButton.getBackground().setColorFilter(getResources().getColor(R.color.red_500), PorterDuff.Mode.MULTIPLY);

现在我的问题是,如何设置新的选择器/波纹或更改当前颜色?有谁知道默认的主题/风格,需要为此覆盖?谈论这些按钮:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以设置选择器。

有关详细信息,请参阅此链接。 https://stackoverflow.com/a/28431028/850347

你有按钮,

<Button
   android:id="@+id/earlier_button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="earlier"/>

你可能有选择,

<强> btn_selecor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_normal" android:state_pressed="false"/>
    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>

</selector>
  • btn_normal,btn_pressed是png图片。
  • 请注意,此btn_selecor.xml必须放置文件夹名称“drawable”

最后,以编程方式将选择器设置为按钮。

    Drawable buttonDrawable = getResources().getDrawable(R.drawable.btn_selector);
    buttonDrawable.mutate();
    btn1.setBackground(buttonDrawable);


EDIT1: 当然,您可以使用下面的代码设置Android默认按钮选择器。 在这种情况下,您不需要自己创建选择器。

Drawable buttonDrawable = getResources().getDrawable(android.R.drawable.btn_default);
buttonDrawable.mutate();
btn1.setBackground(buttonDrawable);