Android Studio使用Vector Asset的注意事项
2016-12-22 15:13
225 查看
Vector是Android 5.0之后新增加的一项特性,目前已经可以兼容到Android 5.0之前的版本。但使用过程中依然还是可能产生一些兼容性的问题。
目前有两种方式创建vector资源,一种是通过Material Icon生成vector资源,一种是通过SVG或PSD文件生成vector资源。具体操作过程比较简单,不再详述。
注意:最好将生成的vector drawable资源放在
vector drawable资源的使用方式如下,
如果不满足以上的条件或由于其他原因导致Android 5.0之前的设备无法使用vector资源,也有别的解决办法。
如果设备无法使用vector资源,则会导致应用崩溃,异常信息大致如下所示:
如果当前使用的gradle版本为2.0以上,在
如果使用的gradle版本为2.0以下,1.5以上,则需要在
并在
推荐使用较新的gradle版本以免不必要的麻烦。
之后,在
需要在根布局中引入命名空间
做完以上工作之后,Android 5.0之前的设备就可以支持使用vector drawable资源了。
1、Android Studio创建Vector Asset
在res目录下的
drawable目录上单击右键,选择New –> Vector Asset,弹出Asset Studio对话框。
目前有两种方式创建vector资源,一种是通过Material Icon生成vector资源,一种是通过SVG或PSD文件生成vector资源。具体操作过程比较简单,不再详述。
注意:最好将生成的vector drawable资源放在
drawable目录下或
drawable-anydpi目录下。
2、兼容问题解决
如果使用的Android Studio版本为2.2以上,gradle版本也较新,生成的vector drawable资源也放在了drawable目录下或
drawable-anydpi目录下,则一般就直接可以兼容Android 5.0之前操作系统。
vector drawable资源的使用方式如下,
ic_egg05_got.xml为生成的vector 资源。
<ImageView android:id="@+id/ivVector" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_egg05_got"/>
如果不满足以上的条件或由于其他原因导致Android 5.0之前的设备无法使用vector资源,也有别的解决办法。
如果设备无法使用vector资源,则会导致应用崩溃,异常信息大致如下所示:
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class ImageView Caused by: android.content.res.Resources$NotFoundException: File res/drawable-nodpi-v4/egg01_got.xml from drawable resource ID #0x7f020053 Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag vector
2.1、修改build.gradle
打开该模块下的build.gradle文件。
如果当前使用的gradle版本为2.0以上,在
android节点下的
defaultConfig节点下加入一行代码:
vectorDrawables.useSupportLibrary = true
如果使用的gradle版本为2.0以下,1.5以上,则需要在
android节点下的
defaultConfig节点下加入如下一行代码:
generatedDensities = []
并在
android节点下,
defaultConfig节点后面加入
aaptOptions { additionalParameters "--no-version-vectors" }
推荐使用较新的gradle版本以免不必要的麻烦。
之后,在
dependencies中引入
appcompat-v7兼容包,版本需要
23.2以上。
compile 'com.android.support:appcompat-v7:25.0.1'
2.2、修改布局文件
如果在布局文件中使用了vector drawable资源的话,则需要修改其使用方式为:app:srcCompat="@drawable/ic_egg05_got"
需要在根布局中引入命名空间
xmlns:app="http://schemas.android.com/apk/res-auto"。
2.3、修改Activity
需要将加载vector drawable资源的Activity继承自AppCompatActivity。
做完以上工作之后,Android 5.0之前的设备就可以支持使用vector drawable资源了。
相关文章推荐
- C++中Vector(向量)使用erase时应该注意的事项
- vector的所有函数和使用的注意事项
- Android Studio 中使用SVN注意事项
- opencv 中Mat与vector使用时注意事项
- Android中VectorDrawableCompat的使用注意事项
- std::vector 使用&&注意事项
- std_vector使用注意事项
- Unity中Shader和AssetBundle结合使用的注意事项
- vector中使用迭代器注意事项
- 【转】vector中erase()的使用注意事项
- C++标准库---vector使用注意事项
- 使用vector容器存储动态申请内存变量的注意事项
- Android Studio使用注意事项
- Butterknife 8.4.0 在Android Studio上使用注意事项
- boost.python vector_indexing_suite 使用注意事项
- std::vector的一些使用注意事项
- 自己总结的Android studio 使用快捷键及注意事项(未完成版)
- 使用string与vector时的一些注意事项
- C++ vector实现关键点和使用注意事项
- android studio使用git注意事项