点击按钮更改主题

时间:2015-03-11 12:18:49

标签: java android android-button android-theme

我为我的按钮设置了一个主题。这是代码:

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

            android:shape="rectangle">

    <solid android:color="@color/theme_blue_color"/>
    <corners
        android:radius="100dp">

        </corners>
    <stroke android:width="1dp"
       android:color="#05f">

       </stroke>
    </shape>

然后我希望点击时更改图像。所以我创建了另一个文件(我将其命名为reverse,并将其放在drawable文件夹中)。然后在java中我设置:

btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                btn(getResources().getColor(R.color.theme_blue_color));
                btn(R.drawable.reverse);
            }
        });

我正确地工作!但我想要发生这种情况,就像你正常点击一个按钮(改变颜色onpress然后它保持原始颜色)。 我怎么能用主题做这个?谢谢你的回答

1 个答案:

答案 0 :(得分:0)

你需要一个选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
  <shape   android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:shape="rectangle">
    <solid android:color="@android:color/red"/>
    <corners
        android:radius="100dp" />
    <stroke android:width="1dp" android:color="#05f" />

  </shape>
  </item>

  <item>
  <shape   android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:shape="rectangle">
    <solid android:color="@color/theme_blue_color"/>
    <corners
        android:radius="100dp" />
    <stroke android:width="1dp" android:color="#05f" />
  </shape>
  </item>
</selector>

在此示例中,您有两种不同的形状。第一个具有压制状态,具有纯红色。将其用作按钮的背景