zoukankan      html  css  js  c++  java
  • Android shape和selector完全总结

    shape和selector嵌套版
    <?xml version="1.0" encoding="utf-8"?>
    <selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 非触摸模式下获得焦点并单击时的背景图片 -->
    <item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic_red" />
    <shape>
    <!-- 渐变
    type的三种类型
    sweep点击后显示圆锥渐变
    linear显示线性渐变
    radial圆形渐变

    gradientRadius渐变扩散度
    android:centerX="50%"设置x轴中心偏移
    android:centerY="50%"设置y轴中心偏移
    centerColor 中心颜色

    angle 渐变旋转角度(只能旋转45度的倍数,且不能用type中的radial渐变)
    solid 实心填充,有渐变就会被覆盖
    size 调整大小,似乎没什么效果
    -->
    <solid android:color="#0f0" />
    <size android:height="100dp" android:width="100dp"/>
    <gradient
    android:centerX="50%"
    android:centerY="50%"
    android:centerColor="#ff39a9"
    android:angle="-45"
    android:startColor="#ff8c00"
    android:endColor="#0ad9d5"
    android:type="linear"
    android:gradientRadius="500" />
    <!-- 描边
    dashwidth 虚线边框线宽
    dashgap 虚线边框空白宽度
    -->
    <stroke
    android:width="1dp"
    android:color="#fa46a6"
    android:dashWidth="30dp"
    android:dashGap="3dp" />
    <!-- 圆角
    可以设置单个角度的圆角
    -->
    <corners
    android:radius="20dp" />
    <!--设置边距-->
    <padding
    android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp" />
    </shape>
    </item>
    <item android:state_focused="true" >
    <shape>
    <gradient
    android:startColor="#ffc2b7"
    android:endColor="#ffc2b7"
    android:angle="270" />
    <stroke
    android:width="2dp"
    android:color="#dcdcdc" />
    <corners
    android:radius="2dp" />
    <padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />
    </shape>
    </item>
    <item>
    <shape>
    <solid android:color="#ff9d77"/>
    <stroke
    android:width="2dp"
    android:color="#fad3cf" />
    <corners
    android:topRightRadius="5dp"
    android:bottomLeftRadius="5dp"
    android:topLeftRadius="0dp"
    android:bottomRightRadius="0dp"
    />
    <padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />
    </shape>
    </item>
    </selector>
    shape单独使用
    <?xml version="1.0" encoding="utf-8"?>
    <shape
    xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 渐变
    type的三种类型
    sweep点击后显示圆锥渐变
    linear显示线性渐变
    radial圆形渐变

    gradientRadius渐变扩散度
    android:centerX="50%"设置x轴中心偏移
    android:centerY="50%"设置y轴中心偏移
    centerColor 中心颜色

    angle 渐变旋转角度(只能旋转45度的倍数,且不能用type中的radial渐变)
    solid 实心填充,有渐变就会被覆盖
    size 调整大小,似乎没什么效果

    -->
    <solid android:color="#0f0" />
    <size android:height="100dp" android:width="100dp"/>
    <gradient
    android:centerX="50%"
    android:centerY="50%"
    android:centerColor="#ff39a9"
    android:angle="-45"
    android:startColor="#ff8c00"
    android:endColor="#0ad9d5"
    android:type="linear"
    android:gradientRadius="500" />
    <!-- 描边
    dashwidth 虚线边框线宽
    dashgap 虚线边框空白宽度
    -->
    <stroke
    android:width="1dp"
    android:color="#fa46a6"
    android:dashWidth="30dp"
    android:dashGap="3dp" />
    <!-- 圆角
    可以设置单个角度的圆角
    -->
    <corners
    android:radius="20dp" />
    <!--设置边距-->
    <padding
    android:left="0dp"
    android:top="0dp"
    android:right="0dp"
    android:bottom="0dp" />
    </shape>

    这是单独使用selector
    <?xml version="1.0" encoding="utf-8" ?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 默认时的背景图片-->
    <item android:drawable="@drawable/pic1" />

    <!-- 没有焦点时的背景图片 -->
    <item
    android:state_window_focused="false"
    android:drawable="@drawable/pic_blue"
    />

    <!-- 非触摸模式下获得焦点并单击时的背景图片 -->
    <item
    android:state_focused="true"
    android:state_pressed="true"
    android:drawable= "@drawable/pic_red"
    />

    <!-- 触摸模式下单击时的背景图片-->
    <item
    android:state_focused="false"
    android:state_pressed="true"
    android:drawable="@drawable/pic_pink"
    />

    <!--选中时的图片背景-->
    <item
    android:state_selected="true"
    android:drawable="@drawable/pic_orange"
    />

    <!--获得焦点时的图片背景-->
    <item
    android:state_focused="true"
    android:drawable="@drawable/pic_green"
    />
    </selector>

  • 相关阅读:
    ActiveMq主从机制
    Calling handler.OnEndpointsUpdate报错原因
    【Android Studio安装部署系列】二十二、Android studio自动生成set、get方法
    【Android Studio安装部署系列】二十一、Android studio将项目上传到github中
    【Android Studio安装部署系列】二十、Android studio如何将so文件添加到svn中
    【Android Studio安装部署系列】十九、Android studio使用SVN
    【Android Studio安装部署系列】十八、Android studio更换APP应用图标
    【Android Studio安装部署系列】十七、Android studio引用第三方库、jar、so、arr文件
    【Android Studio安装部署系列】十六、Android studio在layout目录下新建子目录
    【Android Studio安装部署系列】十五、Android studio添加Assets目录
  • 原文地址:https://www.cnblogs.com/chenxuyuan/p/5084316.html
Copyright © 2011-2022 走看看