文章目录

      • 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

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android关键资源详解
  6. android recovery模式及ROM制作
  7. 想抢先体验Android操作系统的魅力吗?那就使用Android(安卓)LiveCD
  8. 如何构建Android(安卓)1.5系统映像
  9. Android中采用Pull解析器对XML文件进行解析

随机推荐

  1. [Android(安卓)博客]收集一些不错的,关于a
  2. 1、一、Introduction(入门): 0、Introduc
  3. android EditText inputType 中文解说
  4. Android(安卓)资源聚集地
  5. ch023 Android(安卓)ContentProvider(第
  6. Android:EditText 所有属性
  7. android 输入法出现挤压屏幕、android输
  8. android 4.0中的Fragment
  9. 关于android LinearLayout的比例布局
  10. Android之EditText