Android使用矢量图

案例来自于开源项目,文章作为自己学习记录使用
参考资料:http://blog.csdn.net/wanggang514260663/article/details/51503166
                  http://www.tuicool.com/articles/3emUnmM
                  http://blog.csdn.net/ljx19900116/article/details/41806875

一、矢量图VectorDrawable

VectorDrawable 是android针对 svg图片的使用提供的类,svg图的优点呢就是可以进行不丢失清晰度的压缩,只需要使用一套drawable即可,再也不用提供xhdip, hdip ,这么多套图了。

二、使用矢量图的准备

在Android Support Library 23.2中,官方加入了对Vector的向下版本兼容
VectorDrawable 矢量图 支持 API 7 +
AnimationVerctorDrawable矢量图动画: 支持 API 11 +
1.项目支持23.2+的support library

compile 'com.android.support:appcompat-v7:23.2.0'

2.如果gradle的版本在2.0以下

android {
 defaultConfig { 
// 不让gradle自动生成不同屏幕分辨率的png图 
     generatedDensities = []
 }  
aaptOptions { 
    additionalParameters "--no-version-vectors"
 }
}

如果gradle的版本是2.0以上

android { 
defaultConfig {
 vectorDrawables.useSupportLibrary = true
 }
}

三、生成矢量图

1.AndroidStuido提供了Vector Asset可以将svg图片转换成Vectordrawable

Paste_Image.png
Paste_Image.png
Paste_Image.png

2.使用开源项目转换
http://a-student.github.io/SvgToVectorDrawableConverter.Web/
http://www.cnblogs.com/pangguoming/p/5698635.html

引入VectorDrawable

1.VectorDrawable的使用和正常的图片没有区别。同样可以通过xml引入,或者代码引入。
2.如果要使VectorDrawable添加动画效果,需要使用animated-vector标签。
在res中创建根节点为animated-vector的xml文件
drawable:代表引入的drawable图片
target:代表目标动画
name:对应矢量图中 path部分的名称,表示将动画作用于矢量图哪一部分

<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" 
              android:drawable="@drawable/vector_drawable">
 <target android:name="star" android:animation="@animator/star_anim" />
</animated-vector>

start_anim动画


Paste_Image.png

在控件中使用app:srcCompat引入

Paste_Image.png

使用代码引入

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容