美文网首页Android开发实用
Android中shape使用详解

Android中shape使用详解

作者: 感召的鳞 | 来源:发表于2019-07-05 21:41 被阅读0次

    1、当使用shape时我们需要在drawable文件夹下新建一个xml文件,文件的根节点为shape

    <shape xmlns:android="http://schemas.android.com/apk/res/android"  
        android:shape="rectangle|oval|line|ring" >  
    </span>
    

    2、shape的取值一共有四种

    • rectangle(长方形)
    • oval(椭圆)
    • line(线条)
    • ring(圆环)

    如果不设置默认是rectangle

    3、当shape设置成ring还可以额外设置一下属性

    • android:innerRadius:内环的半径
    • android:innerRadiusRatio:内环的比例,比如这个值为2,那么内环的半径就为环半径除以2,如果设置了第一个属性,则这个属性不起作用。
    • android:thickness:环的厚度。
    • android:thicknessRatio:环的厚度比例,比如这个值为2,那么环的厚度就为环半径除以2,如果设置了第三个属性,则这个属性不起作用。
    • android:useLevel:只有当我们的shape使用在LevelListDrawable中的时候,这个值为true,否则为false。

    4、除了属性以外shape还可以设置一些节点

    -圆角

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

    可以给四个角分别设置不同的圆角值,如果四个角一样值可以只设置radius

    - 渐变

        <gradient  
            android:angle="90"  
            android:centerColor="#9ACD32"  
            android:endColor="#9AC0CD"  
            android:startColor="#9AFF9A"  
            android:type="linear"  
            android:useLevel="false"
             ></gradient>  
    
    • android:angle="90"表示渐变的起始位置,这个值必须为45的倍数,包括0,0表示从左往右渐变,逆时针旋转,依次是45,90,135.....,90表示从下往上渐变,270表示从上往下渐变,剩下的大家依次去推理。
    • android:startColor="#9AFF9A",表示渐变的起始颜色
    • android:centerColor="#9ACD32"表示渐变的过渡颜色
    • android:endColor="#9AC0CD"表示渐变的结束颜色
    • type表示渐变的类型,有三种,分别是linear(线性变化),radial(辐射渐变)以及sweep(扫描渐变)
    • 当type为radial时,我们要设置android:gradientRadius="",这个表示渐变的半径(线性渐变和扫描渐变不需要设置)

    -填充

    <solid android:color="#ADFF2F" ></solid>
    

    -描边

    <stroke   
        android:width="1dp"  
        android:color="#FFFF00"  
        android:dashWidth="15dp"  
        android:dashGap="5dp"  
        ></stroke>
    
    • android:dashWidth表示虚线的宽度
    • android:dashGap表示虚线之间的间隔
    • 以上两个属性如果不设置则为实线

    -大小

    <size   
        android:width="1dp"  
        android:height="1dp"  
        />
    
    • 这个表示该shape的大小,默认情况下,shape的大小与它所在的容器大小成正比。如果我们在ImageView中使用这个shape,那么可以通过android:scaleType="center"属性来限制这种缩放。

    例子程序地址 https://github.com/jlhlyby/TestShap

    1.png 2.png 3.png
    例子程序地址 https://github.com/jlhlyby/TestShap

    写文章不易,路过的伙伴辛苦点个赞,谢谢支持!

    相关文章

      网友评论

        本文标题:Android中shape使用详解

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