android 中ImageButton按下改变背景图片的效果

2023-05-16,,

最近在做一个app的登陆界面,才发现原来认为很简单的UI效果,其实背后却蕴含的知识很多,积累一个算一个吧。
实现方法有两种:一种是添加代码,一种是配置xml文件。
方法一:代码添加

ImageButton btn = (ImageButton)findViewById(R.id.imageButton1);

btn.setOnTouchListener(new View.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;

}

});

 方法2:配置xml文件
步骤1:在Layout下增加一个image_btn_press.xml文件

<?xml version="1.0" encoding="utf-8"?>

<selectorxmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="false"android:drawable="@drawable/android_btn" />

<item android:state_focused="true"android:drawable="@drawable/android_btn" />

<item android:state_pressed="true"android:drawable="@drawable/android_btn_pressed" />

</selector>

步骤2:在main.xml中设置图片按钮的属性,装上面的xml文件增加到图片按钮中

<ImageButton

android:id="@+id/imageButton2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@layout/image_btn_press" />

 需要特别注意的是在ImageButton中,如果使用XML配置文件来设置图片的效果的话,就不要再指定它的android:src=""属性值了,否则图片的按下效果就出不来了。

android 中ImageButton按下改变背景图片的效果的相关教程结束。

《android 中ImageButton按下改变背景图片的效果.doc》

下载本文的Word格式文档,以方便收藏与打印。