您的位置:首页 > 产品设计 > UI/UE

Android_UI_点击按钮切换背景效果实现

2013-04-09 11:23 826 查看
实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现一、在xml文件里首先现在layout的一个xml文件下定义Button如下所示:
 [html] view plaincopy<Button   
    android:id="@+id/btn_user_selected"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:background="@drawable/btn_selected/>  
注意代码里的android:background="@drawable/btn_selected",这里btn_selected是drawable文件下定义button按下释放效果的xml文件
接下来看btn_selected.xml文件的定义:  [html] view plaincopy<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android" >  
    <!-- 获得焦点但未按下时的背景图片 -->  
    <item android:state_focused="true" android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/user_selecte_n" />  
     <!-- 按下时的背景图片 -->  
    <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/user_selecte_p" />  
    <!-- 按下时的背景图片 -->  
    <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/user_selecte_p" />  
    <!-- 默认时的背景图片 -->  
    <item android:drawable="@drawable/user_selecte_n" />  
</selector>  

 创建xml:点击drawable文件夹右键-->new-->Android XML File-->在File栏里填写xml名称-->Root Element下选择xml的背景选择器selector-->点击finish-->创建成功相关属性:android:state_selected :选中
android:state_focused  :获得焦点
android:state_pressed  :点击
android:state_enabled  :设置是否响应事件,指所有事件selector背景选择器用法大全请跳转到:点击打开链接 二、在java代码里 [java] view plaincopybottomReturnBtn.setOnTouchListener(new OnTouchListener() {  
      
    public boolean onTouch(View v, MotionEvent event) {  
        Button upStepBtn = (Button) v;  
        if(event.getAction() == MotionEvent.ACTION_DOWN){  
            upStepBtn.setBackgroundResource(R.drawable.bottom_sub_order_btn);  
        }else if(event.getAction() == MotionEvent.ACTION_UP){  
            upStepBtn.setBackgroundResource(R.drawable.bottom_return_check);  
            finish();   
        }  
        return false;  
    }  
});   

 通过监听按钮的不同状态来更改按钮的背景图片public boolean onTouch(View v,MotionEvent event){}参数v:事件源对象参数event:事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。 event.getAction() == MotionEvent.ACTION_DOWN   ======>按钮被按下event.getAction() == MotionEvent.ACTION_UP                ======>按钮被释放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: