通常按钮在点击前和后有两种状态,比如点击前为蓝色,点击后为灰色,且不再响应点击事件。

  如果不使用selector选择器,点击后,就需要在程序中进行以下的类似操作

button1.setBackgroundResource(R.color.material_grey_300);
button1.setTextColor(getResources().getColor(R.color.material_grey_50));
button1.setClickable(false);

  如果使用selector选择器,我们可以将上面的操作简化为

button1.setEnabled(false);

  selector代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:color="@color/igame_normal_white_color" android:state_pressed="true" />
<item android:color="@color/igame_actionbar_button_pressed_color" android:state_enabled="false" />
<item android:color="@color/igame_normal_op_color" />

</selector>

  具体使用如下:

  新建一个xml文件,比如取名为button_color_selector.xml,然后将selector块的代码放到文件去。

  在布局文件中,在Button标签中设置button的属性即可

android:background="@drawable/button_color_selector"

   使用selector选择器可以简化代码,而且可以复用,当其它组件需要使用的时候,直接设置其属性即可。

 程序猿必读

posted on 2016-12-02 18:00  龙种人  阅读(2742)  评论(0编辑  收藏  举报