我希望在我的安卓应用中,当ImageButton
被按下和释放时,它的图片会改变,再次按下并释放时,ImageButton
的图片将会改回来,如何实现呢?
我希望在我的安卓应用中,当ImageButton
被按下和释放时,它的图片会改变,再次按下并释放时,ImageButton
的图片将会改回来,如何实现呢?
创建一个选择器(它是一个xml文件),将其放入drawable文件夹中。在xml文件中,使用该xml文件的五个路径代替实际图像 android:background="@drawable/imageselector"
或者在程序中也可以使用 imageview.setBackgroundDrawable(R.drawable.imageselector)
来实现同样的效果。
以下是我的选择器imageselector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/arow_selected" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/arow_selected" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/arow_selected" />
<item
android:drawable="@drawable/arow_unselect" />
</selector>
使用选择器来实现这个功能...这里有一个链接: http://developer.android.com/reference/android/widget/ImageButton.html
<ImageView
android:id="@+id/iv1"
android:src="@drawable/ic_new_delete0"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:visibility="visible" />
代码后台:
ImageView _iv1 = _activity.FindViewById<ImageView>(Resource.Id.iv1);
_iv1.Touch += (object sender, View.TouchEventArgs e) => {
if (e.Event.Action == MotionEventActions.Down)
{
_iv1.SetImageResource(Resource.Drawable.ic_new_delete);
//Do the task when button is pressed
}
else if (e.Event.Action == MotionEventActions.Up)
{
_iv1.SetImageResource(Resource.Drawable.ic_new_delete0);
//do the task when button is released
}
};