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

最近在做一个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=""属性值了,否则图片的按下效果就出不来了。

posted on 2015-10-28 17:49  qingchen1984  阅读(6824)  评论(0编辑  收藏  举报

导航