(1)android 5.0 
矢量图动画 贝塞尔花式曲线 PathMeasure
VectorDrawable instead of mdpi hdpi xhdpi xxhdpi
矢量图和android中的属性动画的结合
Bezier曲线的使用 使用Bezier曲线实现轨迹动画
PathMeasure实现各种酷炫动画效果 针对各种不同的动画效果可以尝试

VectorDrawable基础知识
SVG和Vector差异
SVG 前端中使用,是一套语法规范
Vector 在Android中使用
Vector只实现了SVG语法的Path标签

栅格图和矢量图 
android中只通过path标签,提高了解析效率

Vector的常用语法
M = moveto(M X,Y):将画笔移动到制定的坐标位置
L = lineto(L X,Y):画直线到制定的坐标位置
Z = closepath():关闭路径

H = horizontal lineto(H X): 画水平线到指定的X坐标位置
V = vertical lineto(V Y): 画垂直线到制定的Y坐标位置

e.g
<Vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportHeight="500"
android:viewportwidth="500">
<path
android:name="square"
android:fillColor="#000000"
android:pathData="M100,100 L400,100 L400,400 L100,400 Z"/>
</vector>

在线SVG编辑 editor.method.ac 
android svg转vector在线工具 http://inloop.github.io/svg2android/
设计师给出的设计稿都是svg,可以通过这个网页来进行转化,AS中也集成了对应的工具

使用vectorDrawable可以很大程度上减少图片的体积
AS提供了可以使用给定图标库和用户自己提供SVG资源来进行vectordrawablw的转化工作

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    矢量图的大小
    android:width="24dp"
    android:height="24dp"
    将矢量图进行分割来进行映射,从而达到不用直接操作原来的大小的作用
    图像被划分的比例大小
    android:viewportHeight="24.0"
    android:viewportWidth="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="" />
</vector>

Android L
只兼容minSDK>=21的版本
>几乎没有兼容性,距离真正的使用还有很长的距离,android 5.0是起始点

Gradle Plugin 1.5
设备版本>=21 使用vector
设备版本<21 将vector转化成PNG
增加了兼容的成本,效果也有限

AppCompat23.2增加了全方面的兼容性
静态Vector支持Android2.1+
动态Vector支持Android3.0+
>几乎可以兼容大部分的使用场景,VectorDrawable迎来了真正的春天

环境工程的配置
使用静态的VectorDrawable
在app build.gradle 中defaultConfig中添加vectorDrawables.useSupportLibrary = true

在控件中使用
ImageView\ImageButton
--app:srcCompat="@drawable/..."

在button上应用
<selector xmlns:android:....>
<item android:drawable="" state_pressed="true"/>
<item android:drawable=""/>
</selector>
同时必须开启下面的设置(如果需要在类似button这类带状态的组件中使用矢量图),否则会报错
static {
AppCompatDelegate
.setCompatVectorFromResourcesEnables(true);
}

android vectorDrawable使用笔记(一)相关推荐

  1. android VectorDrawable使用笔记(四)

    (4)动态VectorDrawable兼容性问题以及对应的处理 向下兼容问题 Path Morphing ---路径变换动画,在Android pre-L版本下是无法使用 Path Interpola ...

  2. android VectorDrawable使用笔记(三)

    (3)矢量图VectorDrawable实现搜索框与轨迹动画 适当增大原来设置的矩形方框,为了更好地显示效果 创建新的动画anim_square <?xml version="1.0& ...

  3. android VectorDrawable使用笔记(二)

    (2)使用动态的VectorDrawable VectorDrawable和IconFont的优势,可以很轻易地使用动画 <?xml version="1.0" encodi ...

  4. android VectorDrawable使用笔记(五)

    (5)VectorDrawable使用场景 vector vs bitmap 1.bitmap的绘制效率并不一定会比vector高,他们有一定的平衡点,当vector比较简单是,其效率一定是比bitm ...

  5. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  6. Android实例剖析笔记(四)

    摘要:分析NoteEditor这个类和以及Content Provider机制 NoteEditor深入分析 首先来弄清楚"日志编辑"的状态转换,通过上篇文章的方法来做下面这样一个 ...

  7. Android Binder 学习笔记

    前言: Binder是Android给我们提供的一种跨进程通信方式.理解Binder能帮助我们更好的理解Android的系统设计,比如说四大组件,AMS,WMS等系统服务的底层通信机制就都是基于Bin ...

  8. Android群英传笔记——第四章:ListView使用技巧

    Android群英传笔记--第四章:ListView使用技巧 近期也是比較迷茫.可是有一点点还是要坚持的,就是学习了.近期离职了,今天也是继续温习第四章ListView,也拖了事实上也挺久的了,lis ...

  9. Android初级开发笔记-- activity启动模式的学习(1)

    第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...

最新文章

  1. 《彩票假设》ICLR 2019 best paper 阅读笔记
  2. 薪资留人还是情感留人?
  3. 【VirtualBox】NAT模式下主机访问客机的设置
  4. 阿里云全球首批MVP张建平专访 - 我对数据有执念
  5. 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了
  6. 图像处理——傅里叶变换
  7. php的array_merge函数
  8. 1168:大整数加法--2022.01.22 AC
  9. 阿里技术:如何画出一张合格的技术架构图?
  10. java snmpv3_snmpv3 java实现
  11. 智能电视或将掀起IT产业新一轮狂潮
  12. pyecharts绘制地图(Geo and Map)(细节更丰富)
  13. 优化 ASP 应用程序和 VBScript 的技巧。
  14. android实现课程表界面
  15. web前端关于浏览器兼容性
  16. 第2章 获得文本语料和词汇资源
  17. 区块链广告平台--【AdRealm】
  18. 20、CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别
  19. 无锡人称包子为馒头,跟宋朝有关?
  20. 蜂窝数据app只剩两个_蜂窝和无线网络探戈需要两个时间

热门文章

  1. java jnotify_java JNotify (基于内核)实时监控文件
  2. mongodb java 开源_MongoDB Java环境下的开发
  3. cmd指令大全指令_干货 | Linux 超全实用指令大全
  4. Python之range和xrange的区别
  5. matplotlb.finance导包报错——ModuleNotFoundError No module named mpl finance
  6. php配置默认index.php,Apache的vhost中配置默认访问入口index-test.php的方法(Yii)
  7. linux脚本参数获取时间戳,Linux系统date命令的参数及获取时间戳的方法
  8. php数组操作之合并相同键名的值,排序,排重,去空值等
  9. phpstudy升级mysql之后,修改配置文件无效的问题
  10. ELK性能优化实战分析