Android通过selector选择器设置Button或者textview的背景颜色,字体颜色

为了让button等控件的点击效果看起来很有动感,所以写了一个选择器。

具体的技能点很好理解,只是有一个地方需要注意的地方,一会我会标红。

这里我就拿button来举例子了,

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
    //注意下面的代码顺序
    //设置button点击状态的背景
    //设置默认状态的背景,这里的背景可以使用drawable 也可以使用color,我这里使用drawable目的是要边框圆滑(自定义)
    android:state_pressed="true" android:drawable="@drawable/communityenterbackblue"/>
    android:drawable="@drawable/communityenterback"/>

  

这里有一个注意的地方:上面两行的顺序一定不能颠倒,如果那样,应该就会报错喽,为什么? 因为选择器的底层实现,是从上到下判断,正确顺序,代码判断是否点击,点击设置背景,未点击向下继续判断,到默认背景。 错误的顺序,代码到了默认设置的那行,判断确实是true,所以直接停,直接设置了背景 ,就不向下继续判断了,说的比较直白,大家容易理解。

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
    //button点击状态设置的颜色,注意这里使用的是android:color
    android:state_pressed="true" android:color="@color/button_unpressed"/>
    android:color="@color/button_pressed"/>

 还有一个需要注意的地方:上面的代码是图片的背景使用的是android:drawable="@drawable/"   下面的却是android:color="" 这里要看好,textview设置  要使用color  而button 就要使用drawable了,千万不要说因为都是设置颜色就使用color、   原因这里我还真心不知道,知道的麻烦留言指教。

对了,textview设置背景和颜色的话  条件为focus。

你可能感兴趣的:(Android)