为了让button等控件的点击效果看起来很有动感,所以写了一个选择器。
具体的技能点很好理解,只是有一个地方需要注意的地方,一会我会标红。
这里我就拿button来举例子了,
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> //注意下面的代码顺序 //设置button点击状态的背景 //设置默认状态的背景,这里的背景可以使用drawable 也可以使用color,我这里使用drawable目的是要边框圆滑(自定义) <item android:state_pressed="true" android:drawable="@drawable/communityenterbackblue"/> <item android:drawable="@drawable/communityenterback"/> </selector>
这里有一个注意的地方:上面两行的顺序一定不能颠倒,如果那样,应该就会报错喽,为什么? 因为选择器的底层实现,是从上到下判断,正确顺序,代码判断是否点击,点击设置背景,未点击向下继续判断,到默认背景。 错误的顺序,代码到了默认设置的那行,判断确实是true,所以直接停,直接设置了背景 ,就不向下继续判断了,说的比较直白,大家容易理解。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> //button点击状态设置的颜色,注意这里使用的是android:color <item android:state_pressed="true" android:color="@color/button_unpressed"/> <item android:color="@color/button_pressed"/> </selector>还有一个需要注意的地方:上面的代码是图片的背景使用的是android:drawable="@drawable/" 下面的却是android:color="" 这里要看好,textview设置 要使用color 而button 就要使用drawable了,千万不要说因为都是设置颜色就使用color、 原因这里我还真心不知道,知道的麻烦留言指教。
对了,textview设置背景和颜色的话 条件为focus。