Android Drawble

1.BitmapDrawable

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_launcher"
    android:tileMode="clamp" />
<!--
xmlns:android
类型:String。定义了XML的命名空间,必须是"http://schemas.android.com/apk/res/android"。
如果<bitmap>是根元素,那么他是必须的,如果是嵌套在<itme>里面,那么就不是必须的。
android:src
类型:Drawable resource。必需。 引用一个drawableresource.
android:antialias
类型:Boolean。是否开启抗锯齿。
android:dither
类型:Boolean。如果位图与屏幕的像素配置不同时,是否允许抖动.(例如:一个位图的像素设置是 ARGB 8888,但屏幕的设置是RGB 565)
android:filter
类型:Boolean。是否允许对位图进行滤波。对位图进行收缩或者延展使用滤波可以获得平滑的外观效果。
android:gravity
类型:关键字。定义位图的重力(gravity),如果位图小于其容器,使用重力指明在何处绘制
-->

2.shapeDrawable

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!--
    shape 有4个选项   rectangle oval line ring 默认为rectangle  
        line ring  必须通过和 stroke 属性来指定 宽度和颜色信息,
    否则无法达到预期效果一起来使用

    -->
    <!-- 这个标签表示纯色填充 通过  color 属性 即可指定填充的颜色 -->
    <solid android:color="#ff0000" />
    <!--
     stroke 边框  android:width 描边宽度 越大边缘线 越宽
     android:color="#00ff00" 描边的宽度
      android:dashWidth 组成虚线的宽度
      android:dashGap="2sp" 虚线的间隔
      dashWidth  dashGap 任何一个为0 虚线的效果将不会显示
      padding 包含 shap的空白 top right left bottom
      corners Radius 为4个角设定相同的角度 优先级最低会被其它4个属性覆盖
             topLeftRadius topRightRadius bottomLeftRadius bottomRightRadius

    -->
    <stroke
        android:dashGap="2dp"
        android:dashWidth="10dp"
        android:width="20dp"
        android:color="#00ff00" />

    <padding
        android:left="200dp"
        android:right="50dp"
        android:top="30dp" />
<!-- 指定大小,一般用在imageview配合scaleType属性使用-->
    <size
        android:height="30dp"
        android:width="30dp" />

    <corners
        android:bottomLeftRadius="9dp"
        android:bottomRightRadius="20dp"
        android:topLeftRadius="20dp"
        android:topRightRadius="9dp" />

</shape>

3.gradient

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!--
    gradient 与 solid 互斥 solid 表示纯色填充  gradient 表示渐变
    centerX 渐变的横坐标
    centerY  渐变的纵坐标
    startColor 渐变的起始色
    endColor 渐变的终止色
    angle  渐变的角度 默认为0 其值必须为45的倍数 
            0 表示从左到右
            90表示从下到上
    gradientRadius 渐变半径 仅当 type 等于 radial时有效
    type sweep扫描 线渐变 radial 镜像渐变   linear 线性渐变,默认为线性渐变

    -->
    <gradient
        android:angle="0"
        android:centerColor="#00ff00"
        android:centerX="0.5"
        android:centerY="0.5"
        android:endColor="#0000ff"
        android:gradientRadius="5"
        android:startColor="#ff0000"
        android:type="sweep" >
    </gradient>

</shape>

4.LayerDarwable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <!--
      layer-list 可以包含多个item
        下层的item会覆盖上层的item,通过刚合理的覆盖会实现叠加的效果
      bottom     left right top 相对view 的偏移量
    -->
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#0ac39e" />
        </shape>
    </item>
    <item android:bottom="16dp">
        <shape android:shape="rectangle" >
            <solid android:color="#ffffff" />
        </shape>
    </item>
    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="#ffffff" />
        </shape>
    </item>

</layer-list>

5.StateListDrawble

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 
    SateListDrawable 对应 selector标签
    系统会根据view 当前的状态从selector中选择相应的item,每个item对应一个Drable,
    系统按照从上往下的顺序 查找,直至找到第一条匹配的item一般来说 默认的item都应该
    放在最后的一条且不带任何状态,这样当系统没有匹配的状态时 系统就可以选择默认的一个状态
    state_pressed 按下状态  按钮按下 还没有松开的状态
    state_focuse 获取焦点
    state_select 选择了view
    state_check 选中状态 选中和非选中状态 
    state_enable 当前view层处于可用状态 
      constranSize 大小是否随选择状态的改变而改变 默认为false 
     dither 开启抖动效果
    variablePading SateListDrawable 的padding 表示是否随着 其状态的改变而改变
    false 表示SateListDrawable的padding是内部所有Drawable的padding最大值。
      默认为false。 并不建议开启
    -->
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="false" android:color="#ffffff"/>
        <!-- press -->
        <item android:state_pressed="true" android:color="#556699"/>
        <!-- focuse -->
    </selector>

</selector>

6.LevelListDrawable

7.TransitionDrawable
8.InsetDrawable
9.ScaleDrawable
10.ClipDrawable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值