修改Button、TextView选中变化状态

一、修改Button按钮选中状态

1.在res\values\colors.xml文件中添加如下内容:

<resources> 
   <drawable name="white">#ffffff</drawable>
   <drawable name="black">#000000</drawable>
</resources>

注意:节点一定是drawable,不是color

2. 在res\drawable\下新建一个名为btn_selector.xml的文件,内容如下:

1	<?xml version="1.0" encoding="UTF-8"?>
2	<selector xmlns:android="http://schemas.android.com/apk/res/android">
3	    <item android:state_selected="true" android:color="@drawable/white" />
4	    <item android:state_pressed="true" android:color="@drawable/white" />
5	    <item android:color="@drawable/black"/>
6	</selector>

3.给button设置颜色,内容如下:

 <Button
     android:text="按钮"
     android:textColor="@drawable/btn_selector"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>

这样你的按钮不光背景可以变化,颜色也可以变化

二、修改TextView文本选中状态

1.在res\values\colors.xml文件中添加如下内容:

 <color name="blue">#3f9ddf</color>

2.在res\drawable\下新建一个名为corner_blue_d25.xml的文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:radius="@dimen/d25"/>
    <solid android:color="@color/blue"/>
</shape>

3.在相同目录下新建另一个文件tv_enable_select.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/corners_blue_d25" android:state_pressed="true" />
    <item android:drawable="@drawable/corners_gray_d25" android:state_pressed="false" />
</selector>

 

4.给TextView设置背景,内容如下:

    <TextView
         android:text="文本"
         android:background="@drawable/tv_enable_select"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"/>

三、还可以通过监听器设置变化状态:

btn.setOnTouchListener(buttonListener);

private OnTouchListener buttonListener = new OnTouchListener() {
 public boolean onTouch(View arg0, MotionEvent event) {
  // TODO Auto-generated method stub
  int action = event.getAction();
  if (action == MotionEvent.ACTION_DOWN) { // 按下
  
   } else if (action == MotionEvent.ACTION_UP) { // 松开   
  
  }
   return false; 
  }  
};

里面写上自己的逻辑即可,大功告成!

上一篇:从Activity创建到View呈现中间发生了什么?


下一篇:T0和T1可编程选择为定时功能与计数功能,二者有什么不同?