自定义View之动画篇(十四)图形篇-SVG矢量图

本文介绍了SVG(可缩放矢量图)的概念及其在Android中的应用。Android从5.0开始支持SVG,对于更低版本,可通过引入支持库。SVG相比Bitmap的优势在于无损缩放和较小的文件大小。文章详细讲解了Android如何使用SVG,包括SVG的标签、path数据描述,以及如何将SVG转换为Vector资源。同时,还阐述了如何在Android中创建SVG动画,通过定义animator文件和animated-vector实现动态效果。
摘要由CSDN通过智能技术生成

SVG

SVG全称是Scalable Vector Graphics (可缩放矢量图),SVG是矢量图,与其对应的是Bitmap即位图;

Google在Android 5.0中增加了SVG支持,而对于5.0以下,可以引入com.android.support:appcompat-v7:23.4.0及以上版本进行支持;Vector标签适用于android2.1以上的所有系统以显示SVG图像,而与SVG动画相关的部分,由于要用到animator(android 3.0引入),所以只支持APP 11以上版本;

Bitmap:由一个个像素点组成,当图片放大到一定大小时,会出现马赛克;

SGV:由一个个点组成,经过数学计算利用直线和曲线绘制而成,无论怎么放大,都不会出现马赛克现象

SVG优点:

  1. SVG使用XML格式定义图形,可以被许多工具读取和修改
  2. 由点来存储,由计算机根据点绘图,不会失真,无须根据分辨率适配多套图标
  3. 占用空间明显比Bitmap小
  4. 可以转化为Path路径,与Path动画相结合,形成更丰富的动画

Android中SVG

标准SVG:支持许多标签,比如rect标签(绘制矩形)、circle标签(绘制圆形)、line标签、polyline(绘制折线段)、ellipse(椭圆)、polygon(多边形)、path(路径)等

Android中没有对原生SVG图像语法进行支持,以一种简化的方式对SVG进行兼容,也就是使用它的path标签,就可以实现SVG中的其他所有标签;

Android中使用标签定义SVG矢量图,并放在res/drawable/目录下,如:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<path
    android:fillColor="#FF000000"
    android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值