android开发之自定义shape

作者: zzj丶 | 来源:发表于2016-12-16 10:44 被阅读259次

    在android开发中 ,我们需要通过drawable图片来改变控件的背景或者样式。如果我们没有呢,就需要我们在控件中进行自定义控件样式。

    自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、padding、solid等

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 圆角 -->
        <corners
            android:radius="9dp"
            android:topLeftRadius="2dp"
            android:topRightRadius="2dp"
            android:bottomLeftRadius="2dp"
            android:bottomRightRadius="2dp"
            />
        <!-- 填充 -->
        <solid
            android:color="@android:color/white"/><!-- 填充的颜色 -->
        
        <!-- 描边 -->
        <stroke
            android:width="2dp"
            android:color="@android:color/holo_red_light"
            android:dashWidth="5dp"
           />
        <!-- 渐变 -->
        <gradient
            android:startColor="@android:color/white"
            android:centerColor="@android:color/holo_blue_dark"
            android:endColor="@android:color/holo_green_dark"
            android:useLevel="true"
            android:angle="45"
            android:type="linear"
            android:centerX="5"
            android:centerY="6"
            android:gradientRadius="90"/>
    
    
        <!-- 间隔 -->
        <padding
            android:left="2dp"
            android:top="2dp"
            android:right="2dp"
            android:bottom="2dp"/><!-- 各方向的间隔 -->
        <!-- 大小 -->
        <size
            android:width="50dp"
            android:height="50dp"/><!-- 宽度和高度 -->
    
    </shape>
    

    填充:设置填充的颜色

    间隔:设置四个方向上的间隔

    大小:设置大小

    圆角:同时设置五个属性,则Radius属性无效
    android:Radius="2dp" 设置四个角的半径
    android:topLeftRadius="2dp" 设置左上角的半径
    android:topRightRadius="2dp" 设置右上角的半径
    android:bottomLeftRadius="2dp" 设置右下角的半径
    android:bottomRightRadius="2dp" 设置左下角的半径

    描边:dashWidth和dashGap属性,只要其中一个设置为0dp,则边框为实现边框
    android:width="2dp" 设置边边的宽度
    android:color="@android:color/white" 设置边边的颜色
    android:dashWidth="2dp" 设置虚线的宽度
    android:dashGap="2dp" 设置虚线的间隔宽度

    渐变:android:startColor和android:endColor分别为起始和结束颜色,
    ndroid:angle是渐变角度,必须为45的整数倍。
    另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

    相关文章

      网友评论

        本文标题:android开发之自定义shape

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