android VectorDrawable使用笔记(四)
(4)动态VectorDrawable兼容性问题以及对应的处理
向下兼容问题
Path Morphing
---路径变换动画,在Android pre-L版本下是无法使用
Path Interpolation
---路径插值器,在Android pre-L版本智能使用系统的插值器,不能自定义
但是系统提供的27中插值器已经够用了= =
向上兼容问题
Path Morphing
---路径变换动画,在Android L版本以上需要使用代码配置,这里有个大坑= =
后面会细说
抽取string兼容问题
不支持从Strings.xml中读取<PathData>
创建一个静态的VectorDrawable 五角星图案,填充色为绿色
目标:五角星到达五边形,即Path Morphing效果
在animator中创建路径变化的属性文件
唯一的变化是property="pathData"
然后改变valueFrom,valueTo分别赋值为前后的形状的pathData具体数值= =
然后就是套路的创建粘合剂以及一系列操作= =,注意在这里如果在5.0以下的android版本上使用时,会报错,需要实现版本的转化操作
具体操作如下= =
这里为了演示效果,采用点击按钮判断的方法,如果版本符合条件,则执行跳转操作
public void switch2L(View view) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLIPOP) {
startActivity(new Intent(VectorDemo.this, MainActivtiy.class));
}else {
Toast.makeText(VectorDemo.this, "当前系统不支持Lplus", Toast.LENGTH_LONG).show();
}
}
在这个时候,对于pathMorphing的路径变换动画效果,还有一个向上兼容性的问题,当遇到5.0以上的版本时,这里必须需要转化成AnimatedVectorDrawable才能进行相关的操作
点击执行动画的操作修改如下:
@TargetApo(Build.VERSION_CODES.LOLIPOP)
public void animL(View view) {
ImageView imageView = (ImageView) view;
AnimationVector drawable = (AnimatedVectorDrawable)getDrawable(R.drawable.fivestar_anim);
imageView.setImageDrawable(drawable);
if(drawable != null) {
drawable.start();
}
}
android VectorDrawable使用笔记(四)相关推荐
- android vectorDrawable使用笔记(一)
(1)android 5.0 矢量图动画 贝塞尔花式曲线 PathMeasure VectorDrawable instead of mdpi hdpi xhdpi xxhdpi 矢量图和andro ...
- android VectorDrawable使用笔记(三)
(3)矢量图VectorDrawable实现搜索框与轨迹动画 适当增大原来设置的矩形方框,为了更好地显示效果 创建新的动画anim_square <?xml version="1.0& ...
- android VectorDrawable使用笔记(二)
(2)使用动态的VectorDrawable VectorDrawable和IconFont的优势,可以很轻易地使用动画 <?xml version="1.0" encodi ...
- android VectorDrawable使用笔记(五)
(5)VectorDrawable使用场景 vector vs bitmap 1.bitmap的绘制效率并不一定会比vector高,他们有一定的平衡点,当vector比较简单是,其效率一定是比bitm ...
- Android群英传笔记——第四章:ListView使用技巧
Android群英传笔记--第四章:ListView使用技巧 近期也是比較迷茫.可是有一点点还是要坚持的,就是学习了.近期离职了,今天也是继续温习第四章ListView,也拖了事实上也挺久的了,lis ...
- Android实例剖析笔记(四)
摘要:分析NoteEditor这个类和以及Content Provider机制 NoteEditor深入分析 首先来弄清楚"日志编辑"的状态转换,通过上篇文章的方法来做下面这样一个 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- Android初级开发笔记-- activity启动模式的学习(1)
第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...
- Android Studio --- [学习笔记]TCP(第2弹)、GridView、ScrollView
说明 这篇主要接上一篇Android Studio - > [学习笔记]RadioButton.CheckBox.ImageView.ListView.TCP的三次握手 对上面回答的细解,并用J ...
最新文章
- 公开平等的企业文化是OKR落地第一步
- mysql 协议的ResultsetRow包及解析
- 资深专家给.NET初学者的学习建议(转)
- 全局的过滤器, 进行时间的格式化——所谓的全局过滤器,就是所有的VM实例都共享的 || 如何自定义一个私有的过滤器(局部)
- ubuntu 11.04下Android开发环境的搭建!
- LeetCode-动态规划-198. 打家劫舍
- 如何在ashx页面获取Session值(未将对象引用设置到对象的实例) (转)
- 1.4Activity保存现场状态
- ElasticSearch之Tokenizer 分词器
- 自己常用的C/C++小技巧
- 图像 存储csv_matplotlib基于数据文件绘制其图像
- 41 款实用工具,数据获取、清洗、建模、可视化都有了
- python画折线图-python如何画折线图
- 通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0
- (Quicker)懒人福利:鼠标快捷操作工具箱
- Python条件分支语法
- 什么是JavaSE,写给第一次接触Java的人
- MIDIPLUS STUDIO M S 2 4声卡安装调试教程
- DOS命令是如何操作目录和文件夹的?
- Linux4.14加密框架中的主要数据结构(1)—— struct crypto_alg(通用算法)
热门文章
- @data注解_聊一下@Conditional注解系列的作用
- Java IO流思维导图
- selenium webdriver中执行js(java)
- docker 自定义网桥
- android app增加内存大小,android – 增加分配给应用程序的内存
- linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决
- 【以太坊】javascript控制台完整交易流程
- 如何查看自己在CSDN的排名
- 【迁移学习(Transfer L)全面指南】2021年迁移学习发展现状及案例探究
- 【微信小程序企业级开发教程】界面跳转方法总结