shape drawable 总结

           最近比较忙,没时间总结,今天抽空总结一下drawable,一个让我很纠结的问题(xml文件中定义)。

         1.bitmap drawable,这个其实只要是研究会自定义view的就会发现,其实xml文件中的各个属性,都是很熟悉的,所以就不过多解释,当然也不推荐这么使用bitmap,因为很占用内存,所以仅仅把代码贴出来,不解释。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/pic1"
    android:gravity="center"
    android:tileMode="disabled"
    android:antialias="true"
    android:dither="true"
    android:mipMap="false"
    android:filter="true">
    <!--tileMode 图片的重复模式 分为没有 镜像 重复 边缘拉伸-->
    <!--antialias 抗锯齿,可以有效解决图片边缘光滑度-->
    <!--dither 防止抖动,当图片像素配置和手机屏幕像素配置不一致时,此属性生效-->
    <!--filter 开启过滤效果,当图片被拉伸或者压缩时,此属性生效-->
    <!--其他属性都为正常属性,这里不做解释-->
</bitmap>
        2.shape drawable 这个用的最多,而且很重要,所以重点介绍一下,同时推荐博客:http://blog.csdn.net/harvic880925/article/details/41850723

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >
    <!--shape 分为矩形 椭圆(圆) 直线 圆环   默认为矩形-->
    <!--直线必须要通过指定stroke的值才会生效-->

    <corners android:radius="5dp"/>
    <!--corners 倒角 可以分别指定四个倒角的个子属性值,此属性只对矩形起作用-->

    <size android:height="100dp"
        android:width="100dp"/>
    <!--尺寸大小,说明此shape有具体的尺寸大小,但是没有任何意义,因为他显示的大小是由view来控制的-->


    <solid android:color="@color/colorAccent"/>
    <!--solie 表示填充的颜色,只能由纯色来填充-->

    <padding android:top="10dp"
        android:bottom="10dp"/>
    <!--padding 分为上下左右可以分别指定值,但是此值对于shape并不起作用,而是作用到view上的-->

    <stroke android:color="@color/colorPrimaryDark"
        android:width="18dp"
        android:dashGap="3dp"
        android:dashWidth="20dp"></stroke>
    <!--stroke 描边,作用在矩形和圆形,也就是实心的上面为描边,作用在直线和圆环上为线宽-->
    <!--color 描边的颜色,没有什么可说的-->
    <!--dashGap 线段的间距,通过设置间距我们可以发现其实宽度有一半是被覆盖掉的-->
    <!--dashWidth 线段的长度-->

    <gradient android:angle="45"
        android:startColor="@color/colorPrimaryDark"
        android:centerColor="@color/center_color"
        android:endColor="@color/colorAccent"
        android:centerX="30"
        android:centerY="30"
        android:gradientRadius="50dp"
        android:type="radial"/>
    <!--gradient 渐变色,此属性与solid属性是互斥的,而且优先级较高-->
    <!--startcolor centercolor endcolor 启始 中间 结束三个颜色值-->
    <!--centerX centerY渐变的中心点,此坐标会影响效果,默认为中心-->
    <!--type 类型 分为线性(默认) 径向渐变(圆环) 扫描线渐变-->
    <!--gradientRadius 渐变半径,当类型为径向渐变才有作用-->
    <!--angle 渐变的角度,默认为0度,而且数值必须为45的倍数-->
</shape>
      3.layer drawable 顾名思义就是分层的drawable,可以制作复合效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/rectangle_round_concer"/>
    <item android:drawable="@drawable/pic1"
        android:top="20dp"
        android:bottom="20dp"
        android:left="20dp"
        android:right="20dp"/>
    <!--<item >-->
        <!--<shape android:shape="oval"-->
            <!-->-->
            <!--<size android:width="30dp"-->
                <!--android:height="30dp"/>-->
            <!--<solid android:color="@color/colorAccent"/>-->
        <!--</shape>-->
    <!--</item>-->
    <!--layer-list 顾名思义,就是shape的集合,但是是有层级关系的,后添加的在最上层-->
    <!--它里面可以有多个item,并且item里面可以套用shape-->
    <!--top bottom left right 含义就是padding的意思-->
</layer-list>
4.最重要的一个selector,但是我就不讲了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值