正常状态的效果:
按钮按下的效果图片:
一、在java中为图片按钮增加触摸监听的函数来实现图片切换,代码如下:
ImageButton btn =(ImageButton)findViewById(R.id.imageButton1);
btn.setOnTouchListener(newView.OnTouchListener(){public boolean onTouch(View v, MotionEvent event) {if(event.getAction() ==MotionEvent.ACTION_DOWN){//重新设置按下时的背景图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn_pressed));
}else if(event.getAction() ==MotionEvent.ACTION_UP){//再修改为抬起时的正常图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn));
}return false;
}
});
代码比较简单,就是当图片按下时,修改按钮的背景图片,当抬起时再修改为正常的图片显示。
二、通过给按钮配置XML文件来实现图片按钮的背景切换效果,方法如下:
1) 在Layout下增加一个image_btn_press.xml文件,内容如下:
在main.xml中设置图片按钮的属性:
android:id="@+id/imageButton2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@layout/image_btn_press" />
在ImageButtonk中指定background的属性值:@layout/image_btn_press,其中image_btn_press 就是上面为该图片铵钮创建的XML配置文件。同时,你也可以将image_btn_press.xml文件放到drawable的目录 下,此时,就要将它的属性值修改为:@drawable/image_btn_press即可,也就是说指定它的XML文件的正确路经就行了。
另外,需要特别注意的是:在ImageButton中,如果使用XML配置文件来设置图片的效果的话,就不要再指定它的android:src=""属性值了,否则图片的按下效果就出不来了。
设置按钮不可按状态:ImageButton.Attributes.Add("onclick","return false");