0x01. gradle版本
v2.0以上
0x02. appcompat版本
高于下面也可以
compile 'com.android.support:appcompat-v7:23.2.0'
0x03. build.gradle
在module的buidl.gradle中添加下面属性.
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
0x04. 资源的使用
- 0x01. 使用AppCompatImageView
替换:
ImageView为AppCompatImageView
app:srcCompat代替android:src
<android.support.v7.widget.AppCompatImageView
android:id="@+id/xxx_aiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="right"
app:srcCompat="@drawable/xxx_svg_icon"
android:visibility="visible"/>
- 0x02. 使用ImageView
<ImageView
android:id="@+id/xxx_aiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="right"
android:src="@drawable/xxx_svg_icon_selector"
android:visibility="visible"/>
在android:src属性中,为了避免兼容性导致的崩溃,则需要把drawable/xxx_svg_icon
文件的引用放到selector中.
xxx_svg_icon_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/xxx_svg_icon_normal" android:state_pressed="true"/>
<item android:drawable="@drawable/xxx_svg_icon_press"/>
</selector>
PS: Button控件中的属性使用都要按照selector的方式使用资源.
0x04. Activity中的处理
在使用svg资源的activity中使用下面的属性.
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
svg的图片需要自己转换
选中要添加矢量图的Module,右击选择New
|
------Vector Asset
|
------选择Local file
|
------选中要转换的原始文件
|
------选择Override(原始文件大小)
|
------drawable文件夹中生成xml矢量文件