一、Android studio与svg
参考:https://developer.android.google.cn/studio/write/vector-asset-studio.html
svg全称scalable Vector Graphics,可缩放矢量图,svg不会像位图一样因缩放而让图片质量下降。优点在于节省空间和内存。常用语简单小图标。
svg是由xml文件定义的,标准的svg图片是以<svg>为根节点。
android通过vector来对svg进行支持,根节点为<vector>。
一张svg图片需要通过转换才能在android中使用。
二、转换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:
1、png生成:
app/build.gradle中添加generatedDensities = ['xhdpi','hdpi']
然后,androidstudio就会生成相应分辨率的png图片。
2、支持库
需要android支持库23.2以上版本,适用于gradle的android插件2.0或者更高版本。利用支持库中的VectorDrawableCompat,可实现在android2.1以上版本支持vector
并且在布局中用app:srcCompat代替android:src。