单击更改按钮的主题
Change theme of button on click
我为我的按钮设置了主题。这是代码:
<?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);
}
});
我工作正常!但我希望发生这种情况,就像您通常单击按钮时发生的那样(按下时更改颜色,然后保持原来的颜色)。
我怎样才能用主题做到这一点?谢谢回答
您需要一个选择器:
<?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>
在此示例中,您有两种不同的形状。第一个处于按下状态,呈纯红色。将其用作按钮的背景
我为我的按钮设置了主题。这是代码:
<?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);
}
});
我工作正常!但我希望发生这种情况,就像您通常单击按钮时发生的那样(按下时更改颜色,然后保持原来的颜色)。 我怎样才能用主题做到这一点?谢谢回答
您需要一个选择器:
<?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>
在此示例中,您有两种不同的形状。第一个处于按下状态,呈纯红色。将其用作按钮的背景