首先还是得吐槽一下,前几天就想写博客来着,可是始终都是登陆不上。其他网站的技术博客,如csdn也是没法查看,很多问题百度到的答案看到有blog.csdn字样的也就不指望能打开了。一个技术博客已经沦落到打不开的地步,不管是出于怎样的原因相信都会是一件让人无法想象的事情。

    好了,言归正传。最近在做应用的UI,主要是button的效果方面。之前一直用的是OnTouchListener去监听button的触摸事件,虽然最终是可以实现想要的效果,但是超大的代码量实在是一种违背编程精神与原则的行为。于是将所有的控件效果用selector改写。

    不得不说,selector用起来方便又快捷,虽然相比ios的UIButton还略逊一筹,但是比起原来的方法也是大有进步了。selector的主要思想就是:区分不同的状态,并且设置不同状态下的drawable。其中涉及到两方面的问题要注意一下:

    1、顺序问题。一个selector中可以有多个item,但默认状态下的item一定要写在最后一个,否则无法达到想要的效果(这个坑浪费了我好多的时间。。)

    2、使用颜色。item默认的属性中没有android:color这个选项,所以要使用用RGB格式表示的颜色时要将颜色资源写入到strings中,再在drawable属性中引用@color/XXX实现对颜色的使用。

    除了button外,其他的控件,比如:EditText等都可以通过写selector的方法实现不同状态下的UI变换