您的位置:首页 > 移动开发 > Android开发

Android自定义Button的点击效果

2015-04-16 21:37 465 查看
在项目开发中,经常碰到按钮点击,可是如果不添加任何效果,按钮是否点击都是看不出来的。于是我们需要在按钮点击时改变按钮的背景图片或者其颜色。这里给出两种实现方法。

第一种,是通过在drawable新建selector.xml文件,在里面可以实现自己所需要的点击效果。给出示例代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_press" android:state_pressed="true"></item>
<item android:drawable="@drawable/button_normal" android:state_focused="false" android:state_pressed="false"></item>
<item android:drawable="@drawable/button_normal" android:state_focused="true"></item>
<item android:drawable="@drawable/button_normal" android:state_focused="false"></item>
</selector>


当按下状态为true,其通过android:state_pressed="true"来定义。相对应的按下去的图片为button_press.当不是按下状态时,即android:state_pressed="false"时,设置其图片为button_normal.

参看如下图片:



接下来只需要在布局文件中设置Button的属性为:

android:background="@drawable/selector"


这样就实现了按钮的按下时其会改变背景图片。

第二种实现方法:

Button button=(Button) this.findViewById(R.id.button);
button2.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN){
v.setBackgroundResource(R.drawable.button_press);
}else if(event.getAction()==MotionEvent.ACTION_UP){
v.setBackgroundResource(R.drawable.button_nomal);
}
return false;
}
});


这样实现不过代码就比较冗余了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: