Android工程使用SVG图片

一、Android studio与svg

参考:https://developer.android.google.cn/studio/write/vector-asset-studio.html

svg全称scalable Vector Graphics,可缩放矢量图,svg不会像位图一样因缩放而让图片质量下降。优点在于节省空间和内存。常用语简单小图标。

svg是由xml文件定义的,标准的svg图片是以为根节点。

android通过vector来对svg进行支持,根节点为

一张svg图片需要通过转换才能在android中使用。

Android工程使用SVG图片_第1张图片Android工程使用SVG图片_第2张图片

二、转换svg

android studio上单独转换svg图片,如果有多个svg文件要转换成vector文件,则可以通过第三方工具。

参考:https://github.com/MegatronKing/SVG-Android/blob/master/svg-vector-cli/bat/svg2vector-cli-1.0.0.jar

执行转换

java -jar svg2vector-cli-1.0.0.jar -d . -o a -h 20 -w 20

-d 指定svg文件所在的目录

-f 指定单个svg文件

-h 设置转换后的svg的高度

-w 设置转换后的svg的宽度。

-o 设置android vector的输出目录。

三、svg的兼容

参考:https://developer.android.google.cn/studio/write/vector-asset-studio.html

android 5.0(API 21)更高级别会提供矢量图支持,如果应用api等级低于21:

Android工程使用SVG图片_第3张图片

1、png生成:

app/build.gradle中添加generatedDensities = ['xhdpi','hdpi']

Android工程使用SVG图片_第4张图片

然后,androidstudio就会生成相应分辨率的png图片。

2、支持库

需要android支持库23.2以上版本,适用于gradle的android插件2.0或者更高版本。利用支持库中的VectorDrawableCompat,可实现在android2.1以上版本支持vector

Android工程使用SVG图片_第5张图片

并且在布局中用app:srcCompat代替android:src。

你可能感兴趣的:(Android)