美文网首页
12-28 Andorid中shape和selector的使用。

12-28 Andorid中shape和selector的使用。

作者: 知者半省者无 | 来源:发表于2016-12-28 10:47 被阅读40次

    1.Shape

    简介

    作用:XML中定义的几何形状
    位置:res/drawable/文件的名称.xml

    使用的方法:

    1. Java代码中:R.drawable.文件的名称
      XML中:Android:background="@drawable/文件的名称"

    Shape常用标签

    属性:

    • <shape> Android:shape=["rectangle" | "oval" | "line" | "ring"]
      其中rectagle矩形,oval椭圆,line水平直线,ring环形

    shape中子节点的常用属性:

    • Android:startColor 起始颜色

    • Android:endColor 结束颜色

    • Android:angle 渐变角度,0从上到下,90表示从左到右,数值为45的整数倍默认为0;

    • Android:type 渐变的样式 liner线性渐变 radial环形渐变 sweep

    <solid > 填充

    • Android:color 填充的颜色

    <stroke > 描边

    • Android:width 描边的宽度
    • Android:color 描边的颜色
    • Android:dashWidth 表示'-'横线的宽度
    • Android:dashGap 表示'-'横线之间的距离

    <corners > 圆角

    • Android:radius 圆角的半径 值越大角越圆
    • Android:topRightRadius 右上圆角半径
    • Android:bottomLeftRadius 右下圆角角半径
    • Android:topLeftRadius 左上圆角半径
    • Android:bottomRightRadius 左下圆角半径

    <corners>间隔

    • Android:bottom = "10dp"
    • Android:left = "10dp"
    • Android:right = "10dp"
    • Android:top = "10dp"

    渐变

    <gradient  
        android:endColor="#FFFFFF"  
        android:gradientRadius="50"  
        android:startColor="#ff8c00"  
        android:type="radial" />
    

    Selector的使用

    引言:选择器,在Android中常常用来做组件的背景。省去了代码控制实现组件再不同状态下的更换。
    定义:状态列表 分为两种:color-Selector和drawable-Selector。


    color-Selector

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
      <item
      android:color="hex_color"   //颜色值,   #RGB,$ARGB,#RRGGBB,#AARRGGBB
    android:state_pressed=["true" | "false"]//是否触摸 
    android:state_focused=["true" | "false"]//是否获得焦点
    android:state_selected=["true" | "false"]//是否被状态
    android:state_checkable=["true" | "false"]//是否可选
    android:state_checked=["true" | "false"]//是否选中
    android:state_enabled=["true" | "false"]//是否可用
    android:state_window_focused=["true" | "false"] />//是否窗口聚焦
    </selector>
    

    示例:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
     android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
     android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
    

    drawable-selector

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:constantSize=["true" | "false"]//drawable的大小是否当中状态变化,true表示是变化,false表示不变换,默认为false 
        android:dither=["true" | "false"]//当位图与屏幕的像素配置不一样时(例如,一个ARGB为8888的位图与RGB为555的屏幕)会自行递色(dither)。设置为false时不可递色。默认true 
        android:variablePadding=["true" | "false"] >//内边距是否变化,默认false 
        <item 
            android:drawable="@[package:]drawable/drawable_resource"//图片资源 
            android:state_pressed=["true" | "false"]//是否触摸 
            android:state_focused=["true" | "false"]//是否获取到焦点 
            android:state_enabled=["true" | "false"]//是否可用 
            android:state_activated=["true" | "false"]//是否激活 
            android:state_window_focused=["true" | "false"] />//所在窗口是否获取焦点
            android:state_hovered=["true" | "false"]//光标是否经过 
            android:state_selected=["true" | "false"]//是否选中 
            android:state_checkable=["true" | "false"]//是否可勾选 
            android:state_checked=["true" | "false"] />//是否勾选 
    </selector>
    

    示例:

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

    调用:

    <Button 
        android:id="@+id/bt_about" style="@style/Button_style" 
        android:background="@drawable/button_selector" 
        android:layout_width="250dp" 
        android:layout_height="50dp" 
        android:layout_margin="5dp" 
        android:textColor="@color/test_color_selector" 
        android:text="@string/about" />

    相关文章

      网友评论

          本文标题:12-28 Andorid中shape和selector的使用。

          本文链接:https://www.haomeiwen.com/subject/htilvttx.html