• Android shape记录


    之前一直觉得dataPath很好用,可以画各种矢量图。今天发现用shape画图也不错,记录一下自己用shape画的图。

    一般使用shape就是定义形状、stroke边、solid内部、corners圆角等,代码

    1. <?xml version ="1.0" encoding ="utf-8"?>
    2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:shape="rectangle">
    4. <corners
    5. android:radius="@dimen/dp_10" />
    6. <solid
    7. android:color="?attr/colorBgKey" />
    8. <stroke android:width="@dimen/dp_1" android:color="@color/black"/>
    9. </shape>

    然后,shape也可以处理一下复杂一点的。

    这其实是画两层,一层是一个渐变圆,一层是是个实心圆。

    shape分层就需要用到 layer-list 每一层用 item 包裹,在 item 中写具体的shape。其中item可以指定width、height、top、left、right、bottom来控制每一层的位置。

    代码如下

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    3. <item
    4. android:width="@dimen/dp_30"
    5. android:height="@dimen/dp_30">
    6. <shape android:shape="oval">
    7. <gradient
    8. android:centerX="50%"
    9. android:centerY="50%"
    10. android:endColor="#00FF0000"
    11. android:gradientRadius="50%"
    12. android:startColor="#FFFF0000"
    13. android:type="radial" />
    14. </shape>
    15. </item>
    16. <item
    17. android:width="@dimen/dp_10"
    18. android:height="@dimen/dp_10" android:top="@dimen/dp_10" android:left="@dimen/dp_10">
    19. <shape android:shape="oval">
    20. <solid android:color="#FFFF0000"/>
    21. </shape>
    22. </item>
    23. </layer-list>

    下面是一个拍照背景图片

    也是用到layer-list,代码如下

    1. <?xml version ="1.0" encoding ="utf-8"?>
    2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    3. <item>
    4. <shape android:shape="rectangle">
    5. <stroke
    6. android:width="@dimen/dp_5"
    7. android:color="?attr/colorBorder"
    8. android:dashWidth="@dimen/dp_10"
    9. android:dashGap="@dimen/dp_10" />
    10. <corners android:radius="@dimen/dp_15" />
    11. <solid android:color="?attr/colorBg" />
    12. </shape>
    13. </item>
    14. <item
    15. android:left="@dimen/dp_50"
    16. android:right="@dimen/dp_50">
    17. <shape android:shape="line">
    18. <stroke
    19. android:width="@dimen/dp_5"
    20. android:color="?attr/colorBorder" />
    21. </shape>
    22. </item>
    23. <item
    24. android:left="@dimen/dp_50"
    25. android:right="@dimen/dp_50">
    26. <rotate android:fromDegrees="90">
    27. <shape android:shape="line">
    28. <stroke
    29. android:width="@dimen/dp_5"
    30. android:color="?attr/colorBorder" />
    31. </shape>
    32. </rotate>
    33. </item>
    34. </layer-list>

  • 相关阅读:
    如何让光从光纤平滑地进入波导?
    java-php-python-ssm幼儿园管理系统计算机毕业设计
    测试工作流程图,你一定要知道的
    剑指offer专项突击版第28天
    一文看懂一体成型贴片电感感值怎么测量gujing
    mysql 提示Index column size too large. The maximum column size is 767 bytes.
    GitHub操作之跨团队操作
    中文编程工具免费版下载,中文开发语言工具免费版下载
    卫生纸标准及鉴别
    【Java】Druid未授权访问漏洞如何处理
  • 原文地址:https://blog.csdn.net/Ryfall/article/details/133386563