android 中 ImageButton 的效果

Effect for ImageButton in android

我想为 ImageButton 创建效果。例如,它会在单击时改变颜色...我该怎么做?我想在 .xml 文件中执行此操作。你能帮助我吗!谢谢! 我尝试创建 state.xml 文件如下:

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

<item
    android:state_pressed="true"
    android:state_enabled="true"
    android:drawable="@drawable/btn_0" />
<item
    android:state_focused="true"
    android:state_enabled="true"
    android:drawable="@drawable/btn_ac" />

</selector>

但是,我无法为 ImageButton 设置背景。错误是这样的:

您只需将 "android:background" 属性添加到 ImageButton 并设置可绘制对象即可。

Your layout

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/my_btn"
    android:background="@drawable/btn_drawable"/>

btn_drawable.xml

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

        <item android:state_pressed="true"
              android:drawable="@drawable/blue"
              />
        <item android:state_focused="true"
              android:drawable="@drawable/white"
              />
<item android:drawable="@drawable/green" />
    </selector>

在上面的代码中,当您的 ImageButton 被按下(state_pressed)、聚焦(state_focus)或正常(未按下且未聚焦)时,您设置了不同的可绘制对象。

Here你可以找到更详细的。

像下面这样创建一个可绘制对象并将其命名为btn_drawable

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/btn_disable" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/btn_click" />

    </selector>

这是一个例子,这样你可以根据自己的需要和图片按钮的状态添加<item/>。 然后将可绘制对象设置为图像按钮背景。

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/btn_drawable"/>