Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果按钮已经有形状布局,如何更改按钮按下时的颜色?安卓_Android_Android Studio_Android Drawable - Fatal编程技术网

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的示例:

<?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的示例:

<?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选择器”