更改图像按钮

时间:2014-02-14 06:51:31

标签: java android xml imagebutton

我想要保留图像按钮的图像并在发布时将其更改回来。 以下是我编辑此代码的主要代码帮助。 xml代码:

<ImageButton
                android:layout_width="62dp"
                android:layout_weight="1"
                android:layout_height="60dp"
                android:id="@+id/im1"
                android:layout_gravity="fill_horizontal"
                android:src="@drawable/off1"/>

和java代码:

im1 = (ImageButton) findViewById(R.id.im1);
        im1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
          //some codes
          }
        });

3 个答案:

答案 0 :(得分:2)

您只需在布局文件中设置按钮选择器。

<Button
     android:id="@+id/button1"
     android:background="@drawable/selector_xml_name"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

并完成。

修改

以下是drawable目录中的button_effect.xml文件

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

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

在这里,你可以看到有3个drawable,你只需要将这个button_effect样式放在你的按钮上,就像我上面写的那样。您只需要将selector_xml_name替换为button_effect。

答案 1 :(得分:1)

是的,你必须使用选择器。您可以使用TogggleButton并将其设为android:checked = "true"并将背景设置为@drawable/selector,然后仅在修改时释放它将改变其状态。 的 toggle_button_selector.xml

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

然后在布局文件中

<ToggleButton
        android:id="@+id/btnToggle"
        android:layout_height="wrap_content"
        android:layout_marginTop="wrap_content"
        android:textOn=""
        android:textOff=""
        android:checked="true"
        android:background="@drawable/toggle_button_selector" />

你也可以用按钮做同样的事情。

答案 2 :(得分:0)

使用这样的选择器并在按钮中应用这个drawable:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/buttonbluepressed" />
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" />
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" />
    <item android:drawable="@drawable/buttonblue"/>
</selector>