zoukankan      html  css  js  c++  java
  • Android初级教程:如何自定义一个状态选择器

    有这样一种场景:点击一下某个按钮或者图片(view),改变了样式(一般改变背景颜色)。这个时候一种解决方案,可能就是状态选择器。接下来就介绍如何实现状态选择器:

    步骤:

    一、新建这样的文件夹:res/drawable

    二、创建一个xml文件;这里命名为my_select.xml(注意选择select类型的文件)

    三、接下来在里面写如下代码:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
             <item android:state_pressed="true"
              android:drawable="@drawable/btn_green_pressed" /> <!-- pressed按下的颜色背景图片。也可以在values目录下新建color文件引入颜色 -->
        
        <item android:state_pressed="false"
            android:drawable="@drawable/btn_green_normal" /> <!-- default默认的背景图片 -->
    
    </selector>

    注意:那两个引用的图片是自己随便放的,自己喜欢改变即可。

    四、在布局文件给button按钮设置成这个选择器,代码如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <Button
            android:layout_centerInParent="true"
            android:background="@drawable/bt_select"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="点我改变颜色哦" />
    
    </RelativeLayout>

    现在运行程序就行了,看效果图:

    可以看到,默认是自己设置的绿色图片背景,按下成了棕黄色背景。

    如果设置颜色选择器,效果如下:


    但是个人建议不要使用颜色作为选择器,对于内部原因,现在的知识还无法解释。因为有些view加入颜色选择器会出问题,希望以后能明白具体原理吧。懂得前辈,也可以留言解释一下,提前感谢O(∩_∩)O


  • 相关阅读:
    iOS截取长图,自定义截取size
    工作
    UITableView适配iOS11
    利用脚本实现build号自动加一
    iOS原生与JS互调
    CSS高级技巧
    伪元素选择器
    CSS设置过渡
    CSS文本属性 二
    css设置圆角矩形
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299614.html
Copyright © 2011-2022 走看看