使用选择器,形状不会出现在 ImageButton 上

Shape does not appear on ImageButton using selector

我正在尝试通过选择器在 imagebutton 中提供点击效果,并且我使用了 shape 。但问题是当我将选择器与 android:Background 一起使用时,只有左上角的一小部分变成橙色。

选择器xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true" >
    <shape android:shape="rectangle">
        <solid android:color="@color/orange"/>
    </shape>
</item>

</selector>

还有我的头像xml

<ImageButton
   style="@style/icon"
   android:background="@drawable/icon_selector"
   android:src="@drawable/fear_96"
   android:scaleType="fitXY" />

但是当我将选择器从背景更改为 src 时,没有任何反应

<ImageButton
  style="@style/icon"
   android:background="@drawable/fear_96"
   android:src="@drawable/icon_selector"
    android:scaleType="fitXY"/>

请帮忙如何使用选择器实现点击效果?

icon_selectorxml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/orange"
          android:state_pressed="true" />
    <item android:color="@color/orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/fear_96" />
</selector>

并且在您的 ImageButton 中

<ImageButton
   style="@style/icon"
   android:background="@drawable/icon_selector"
   android:scaleType="fitXY" />

使用下面的代码将 android:color 更改为 android:drawable,您可以使用颜色作为可绘制对象,请参见图像。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/orange"
          android:state_pressed="true" />
    <item android:drawable="@color/orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/fear_96" />
</selector>

设为背景

<ImageButton
   style="@style/icon"
   android:background="@drawable/icon_selector"
   android:scaleType="fitXY" />