博客
关于我
Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
阅读量:446 次
发布时间:2019-03-06

本文共 887 字,大约阅读时间需要 2 分钟。

Android XML Shape标签详解

Shape标签定义的Drawable类型

Shape标签定义的Drawable实际上是GradientDrawable。虽然官方文档中提到ShapeDrawable也是通过shape标签定义的,但实际上Shape标签定义的Drawable无法转换为ShapeDrawable,只能认为是GradientDrawable的文档描述有误。

使用Drawable的好处

  • 简便易维护:快速定义矩形、圆、椭圆、圆环等几何图形,轻松实现圆角和渐变效果
  • 减少APK体积:替代图片作为View背景,显著降低APK体积
  • 优化内存占用:Drawable文件占用内存更少,Android系统对Drawable进行了优化
  • 更高效的渲染:Drawable渲染效率更高,尤其是在复杂图形上
  • 使用Drawable与图片的对比

  • 使用Drawable的情况:

    • 可以通过Shape标签定义的几何图形完成需求
    • 适合实现渐变效果(线性、径向、扫描渐变)
    • 内部填充或边框效果简单实现
    • 适用于需要减少APK体积的场景
  • 使用图片的情况:

    • 适用于不规则或复杂图形
    • 需要使用.9.png等格式优化
    • 适用于需要特殊拉伸效果或品牌图片
  • Shape标签定义的Drawable类型

    Shape标签可以定义四种基本几何图形:

  • line:直线(支持实线和虚线)
  • rectangle:矩形(支持边框和填充)
  • oval:椭圆或圆
  • ring:圆环
  • 此外,Shape标签还支持以下功能:

    • 边框属性:有边框、无边框、虚线边框和实线边框
    • 圆角效果:单个或多个角设置圆角半径
    • 渐变效果:支持三种类型(线性、径向、扫描)

    典型Drawable定义示例

    1. 实线边框矩形

    2. 虚线边框圆角矩形

    3. 渐变椭圆

    总结

    掌握Shape标签能够快速构建多种Drawable类型,直接作为View背景使用,减少APK体积并优化内存占用。建议在不需要复杂图形或特定效果时优先使用Shape标签定义的Drawable。

    转载地址:http://hxufz.baihongyu.com/

    你可能感兴趣的文章
    Python:在整数的二进制表示中查找最长的二进制间隙
    查看>>
    Python:如何从二进制转换为 base 64 并返回?
    查看>>
    Python:如何以非阻塞方式读取子进程的标准输出
    查看>>
    Python:如何使用 plotly 制作阴影区域或交替背景颜色?
    查看>>
    Python:如何根据日期时间获取值的计数
    查看>>
    python:如何检测串行 COM 上的设备名称/ID
    查看>>
    Python:如何模拟 datetime.utcnow()?
    查看>>
    Python:如果DataFrames之间的其他值匹配,则对DataFrame中的值求和
    查看>>
    Python:字典思维
    查看>>
    Python:将 HEX 字符串转换为字节
    查看>>
    Python:将列表与范围列表合并
    查看>>
    Python:将列表列表初始化为一定大小,
    查看>>
    Python:带有生成器的给定集合的幂集
    查看>>
    Python:按字符的位置拆分字符串
    查看>>
    Python:替换嵌套字典中的值
    查看>>
    Python:爬取数据出现response.status_code为403解决方法
    查看>>
    Python:爬取数据出现response.status_code为418解决方法
    查看>>
    Python:生成“元组集“;来自“元组列表“;不考虑顺序
    查看>>
    Python:生成具有趋势的随机时间序列数据(例如周期性、指数衰减等)
    查看>>
    Python:用渐进式数字重命名列表中的重复项而不对列表进行排序
    查看>>