我想要保留图像按钮的图像并在发布时将其更改回来。 以下是我编辑此代码的主要代码帮助。 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
}
});
答案 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>