Android 如果按钮已经有形状布局,如何更改按钮按下时的颜色?安卓
我想改变按钮按下时的颜色,但我已经有了Android 如果按钮已经有形状布局,如何更改按钮按下时的颜色?安卓,android,android-studio,android-drawable,Android,Android Studio,Android Drawable,我想改变按钮按下时的颜色,但我已经有了 android:background="@drawable/shape_layout" shape_layout.xml代码: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#ff055500"
android:background="@drawable/shape_layout"
shape_layout.xml代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#ff055500"
android:endColor="#ff055500"/>
<corners android:radius="1dp" />
<stroke android:width="1px" android:color="#ffffff" />
</shape>
那么,如何在按下按钮时更改按钮的颜色?您还需要两个XML文件:
- shape_layout_hover.xml(基本上是同一个文件,只需将颜色更改为应在按下状态下显示的颜色)
- 选择器文件,将在不同按钮状态下选择这两种布局之一
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_layout_hover" />
<item android:state_focused="true" android:drawable="@drawable/shape_layout_hover" />
<item android:drawable="@drawable/shape_layout" />
</selector>
然后创建以选择器文件为背景的按钮样式。并将该样式设置为按钮项
<item name="android:background">@drawable/button_selector</item>
@drawable/button\u选择器
您还需要两个XML文件:
- shape_layout_hover.xml(基本上是同一个文件,只需将颜色更改为应在按下状态下显示的颜色)
- 选择器文件,将在不同按钮状态下选择这两种布局之一
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_layout_hover" />
<item android:state_focused="true" android:drawable="@drawable/shape_layout_hover" />
<item android:drawable="@drawable/shape_layout" />
</selector>
然后创建以选择器文件为背景的按钮样式。并将该样式设置为按钮项
<item name="android:background">@drawable/button_selector</item>
@drawable/button\u选择器
您需要创建一个可绘制的选择器:
shape_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_layout_pressed"/>
<item android:state_focused="true" android:drawable="@drawable/shape_layout_focused"/>
<item android:drawable="@drawable/shape_layout"/>
</selector>
将按下/聚焦状态所需的颜色添加到新的XML drawable中,并将选择器drawable设置为背景:
android:background=“@drawable/shape\u selector”
您需要创建一个可绘制的选择器:
shape_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_layout_pressed"/>
<item android:state_focused="true" android:drawable="@drawable/shape_layout_focused"/>
<item android:drawable="@drawable/shape_layout"/>
</selector>
将按下/聚焦状态所需的颜色添加到新的XML drawable中,并将选择器drawable设置为背景:
android:background=“@drawable/shape\u选择器”