安卓TextView、Button点击效果背景变化实现

安卓TextView、Button点击效果背景变化实现

android UI开发中最经常用到的就是各种控件的点击事件,比如TextView和Button,点击时背景色有个变化提醒用户触发了点击事件,当用户手指抬起时,背景色又恢复正常,这种效果配置方法很简单,两步即可。

第一步 编写一个XML文件

该文件位于drawable文件夹下面,根据使用的背景的资源不同,写法也不同,比如有的背景直接使用的是颜色,有的是用的是图片,下面列举几个写法。

这是使用图片资源的写法:

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android" >


android:state_pressed="true" android:drawable="@drawable/enter">

android:state_pressed="false" android:drawable="@drawable/exit"  >

android:state_focused="true" android:drawable="@drawable/setting"  >

这是使用自定义shape的写法:

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
    android:state_pressed="true">
        android:shape="rectangle">
            android:color="#11000000" />
        
    
    android:state_pressed="false">
        android:shape="rectangle">
            
            android:color="#00000000" />
        
    

这是直接使用颜色的写法:

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
    android:drawable="@android:color/holo_orange_dark" android:state_pressed="true">
    android:drawable="@android:color/holo_orange_light">

注意,上面的写法中,属性android:drawable有同学会误写成android:background,的确我们常用background属性来设置背景,并且这样写编译也不会报错,但是运行起来会报错的,所以要注意用的是android:drawable而不是android:background。

第二步 设置控件属性

为要添加点击效果的控件设置background属性,如下

android:background="@drawable/第一步的xml文件的名字"


补充材料:

android:state_selected 是否选中
android:state_focused 是否获得焦点
android:state_pressed 是否点击
android:state_enabled 是否设置是否响应事件,指所有事件

在写drawable xml文件时,我们在运用android:state_pressed、android:state_focused等状态属性时,一定要知道每个item语句是顺序执行的,遇到第一个符合条件的item即执行该语句并且不再往下面执行,所以当你想要的点击效果没有出来时,检查一下item语句的顺序。

你可能感兴趣的:(Android,UI)