Android使用本地svg及不显示问题解决
16lz
2021-12-04
文章目录
- Android使用本地svg及不显示问题解决
- 错误示范
- 引入本地矢量图正确步骤
- 注意事项
- 参考
Android使用本地svg及不显示问题解决
今天UI小姐姐给切图时,里面有部分svg文件。本来想让UI小姐姐全部换成png格式,转念一想那岂不是太low,Android又不是不支持svg。
错误示范
于是就直接将svg图片copy进res/drawable目录下,然后给ImageView的background属性引用,接下来就啪啪打脸了,xml文件直接标红,build之后也报aapt异常,这下就尴尬了。
具体异常如下所示:
于是就赶紧老老实实的去翻官网文档——添加多密度矢量图形。
引入本地矢量图正确步骤
第一步,添加Gradle配置
具体来说,是在app/build.gradle文件中添加如下配置:
android { defaultConfig { //vector to svg, and need vectorDrawables.useSupportLibrary = true }}dependencies { implementation 'com.android.support:appcompat-v7:28.0.0'}
需要注意的是,com.android.support:appcompat-v7
的版本需要23.2
及以上,不过现在绝大部分项目都已经支持了。
第二步,导入本地svg文件
①在Android Studio的Project窗口中,切换到Android视图,具体如下图:
②然后右键点击res
文件夹,选择New > Vector Asset
,
具体如下图:
③在打开的对话框中,选择本地文件,具体如下图:
需要注意的是,我们的svg源文件名称中不能包含汉字,只支持小写字符、下划线和数字。
④最后点击Next
--> Finish
即可,就会生成相应的xml文件。
第三步,当做资源文件使用
需要注意的是这里要使用app:srcCompat
,而不是android:src
。
注意事项
还有一点需要注意,如果你的Activity不是继承自AppCompatActivity
,那么就使用如下代码显示设置svg背景:
imageView.setImageResource(R.drawable.ic_svg_image);
参考
添加多密度矢量图形
Svg not visible in device but visible in android xml
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- Android关键资源详解
- android recovery模式及ROM制作
- 想抢先体验Android操作系统的魅力吗?那就使用Android(安卓)LiveCD
- 如何构建Android(安卓)1.5系统映像
- Android中采用Pull解析器对XML文件进行解析