
随着Android应用程序兼容性支持库v23.2的新版本到来,它的一些特性也向后兼容并且增加了一些新功能。随着Android Lolipop(API 21)的发布,一个新的组件被包括进来,它被叫做矢量绘制对象。但是这个组件仅仅能在API21+上使用,现在的Androidy应用程序兼容性支持库v23.2矢量绘制对象的到来,可以为可绘制性提供强大的向后兼容性,可兼容API7+设备。
什么是 Vector Drawable ?
正如它的名字所暗示的那样,Vector Drawable基于矢量图像。相对于光栅图形,矢量图形是描述使用几何形状图形元素的一种方式,它类似于SVG文件。在Vector Drawable中它是利用XML文件被创建出来。在Vector Drawable添加到Android SDK之前,开发者对于不同的显示分辨率必须创建多个版本的图像,这需要花费时间创建额外的asstes,并且消耗更多的空间,以致于增大apk文件的大小。如今这里不需要为mdpi,hdpi,xhdpi等等设计不同大小的图像,利用Vector Drawable你只需要创建图像仅仅一次作为一个XML文件,你将能够对于所有显示分辨率和不同的设备进行缩放。
如何使用Vector Drawable ?
升级builde.gradle 文件
在你项目中能够使用Vector Drawable之前,你需要添加兼容行代码到你的build.gradle文件下Gradle depencies模块中(以下版本必须满足v23.2+)然后重新编译一下项目
1 | dependencies { |
如果你是使用的Gradle plugin插件版本在2.0或者及其以上,请添加以下代码:
1 | // Gradle Plugin 2.0+ |
如果你是使用的Gradle plugin插件版本在1.5或者及其以下,请添加以下代码:
1 | // Gradle Plugin 1.5 |
我当前的Android Studio是 2.2 priview 6:
创建Vector Drawable
创建Vector Assets目录
在你的Android Studio中选中drawable文件夹>右键点击>new>Vector Assets
Vector Asset Studio Tool
现在Vector Asset Studio 工具窗口会出现
创建Vector drawable xml
创建Vector drawable xml 文件有两种方式:默认的Material 图标、加载本地SVG文件
Material 图标
选择Material图标选项,然后点击icon,它将会出现一个选择icon的窗口,在这里你可以选择任意一个你期望的图标。我这里选择了一个定位的图标,点击OK
这个窗口显示了刚刚选择的图标进行预览,我默认设置它的size为24x24dp,现在点击下一步
这个窗口运行你设置目标Module和Res目录(可以选择debug或者release其中一种),配置完成后点击Finish完成
以下就是上面过程的结果,将会在drawable文件夹中生成Vector drawable ic_location_on_black_24dp.xml
加载本地SVG文件
选择Local SVG File,然后点击下面的path,弹出一个新的窗口,选择本地svg 文件。
这个窗口显示了刚刚导入的SVG图标进行预览,我默认设置它的size为24x24dp,现在点击下一步
这个窗口运行你设置目标Module和Res目录(可以选择debug或者release其中一种),配置完成后点击Finish完成
以下就是上面过程的结果,将会在drawable文件夹中生成Vector drawable ic_dollar.xml
修改strings.xml
添加以下string values到res => values => strings.xml
1 | <resources> |
修改layout.xml
1 |
|
修改 MainActivity.java
1 | package com.example.shoewann.myapplication; |