Android中ImageButton的效果

时间:2015-01-24 16:38:58

标签: android imagebutton effects

我想为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设置背景。像这样的错误: enter image description here

2 个答案:

答案 0 :(得分:2)

所有你需要做的就是将“android:background”attribut添加到你的ImageButton并设置一个drawable。

  

你的布局

<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)或者什么时候正常(没有按下而没有聚焦)时,你设置一个不同的drawable。

Here您可以找到更详细的信息。

答案 1 :(得分:1)

创建如下所示的drawable并将其命名为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/>。 然后将drawable设置为图像按钮背景。

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