SVG在Android上的使用

本文详细介绍了位图和矢量图(SVG)的区别,SVG的特性,以及在Android中如何使用SVG,包括Android 5.0以上的原生支持和低版本的兼容方案,同时提供了代码示例和调用方法。SVG因其小巧、不失真的特点,适合用于图标和简单图形的设计。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

阿里巴巴图片库:https://www.iconfont.cn/collections/detail?cid=9638

一:位图和矢量图的概念

  • 位图又叫点阵图或像素图,计算机屏幕上的图是由屏幕上的发光点(即像素)构成的,每个点用二进制数据来描述其颜色与亮度等信息,这些点是离散的,类似于点阵。多个像素的色彩组合就形成了图像,称之为位图(像GIF、JPEG、PNG等都是位图图像格式)。
  • 矢量图又叫向量图,是用一系列计算机指令来描述和记录一幅图,一幅图可以解为一系列由点、线、面等到组成的子图,它所记录的是对象的几何形状、线条粗细和色彩等。生成的矢量图文件存储量很小,特别适用于文字设计、图案设计、版式设计、标志设计、计算机辅助设计(CAD)、工艺美术设计、插图等。

二:什么是SVG

  • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
  • SVG 用来定义用于网络的基于矢量的图形
  • SVG 使用 XML 格式定义图形
  • SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
  • SVG 是万维网联盟的标准
  • SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

三:SVG的代码实现

  • svg代码:

但是在android中是不支持svg代码,具体教程可查看W3school:https://www.w3school.com.cn/svg/index.asp

<svg class="icon"
    height="100"
    p-id="2332"
    t="1621585217711"
    version="1.1"
    viewBox="0 0 1024 1024"
    width="100"
    xmlns="http://www.w3.org/2000/svg">
    <path
        d="M519.37694695 3.190031l0 861.30841098L439.62616795 864.49844201 439.62616795 3.190031l79.750779 0z"
        fill="#337ab7"
        p-id="2333"></path>
    <path
        d="M599.12772595 823.028037L481.09657295 1024l-121.221184-200.971963 239.252337 0z"
        fill="#337ab7"
        p-id="2334"></path>
</svg>
  • 在android studio中以Vector代码形式来显示svg图片:

说到矢量图,顺便讲下Vector,在Android中指的是Vector Drawable,也就是Android中的矢量图,可以说Vector就是Android中的SVG实现(并不是支持全部的SVG语法,现已支持的完全足够用了),其实svg格式再android studio的显示就是转为Vector

四:SVG和平时用的位图有什么区别

  • SVG是需要显示的时候再把图形绘制出来,所以显示的时候肯定会耗费一些资源(但是位图也需要渲染,具体谁占

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值