android 动画 返回,Android“菜单图标变返回”动画

此例用到SVG动画,其中涉及三个XML文件,分别为:Vector矢量图,objectAnimator动画,以及一个animated-vector文件将前两个文件联合起来。

1.在drawable文件夹下新建vector文件描述矢量图

android:height="200dp"

android:width="200dp"

android:viewportHeight="100"

android:viewportWidth="100">

android:name="path1"

android:strokeColor="@color/colorAccent"

android:strokeWidth="5"

android:strokeLineCap="round"

android:pathData="

M 20,80

L 50,80,80,80"/>

android:name="path2"

android:strokeColor="@color/colorAccent"

android:strokeWidth="5"

android:strokeLineCap="round"

android:pathData="

M 20,50

L 50,50,80,50"/>

android:name="path3"

android:strokeColor="@color/colorAccent"

android:strokeWidth="5"

android:strokeLineCap="round"

android:pathData="

M 20,20

L 50,20,80,20"/>

因为要改变第一条和第三条线的,只要两个点就够了,但是为了动画美观过渡更自然,我们使用三个点来描绘。其中M代表moveto:即起点坐标,L代表lineto:即后续点点到哪里,在这个动画中我们描绘了三条线,第一条:最下面一条,(20,80)到(50,80)再到(80,80)剩下两条以此类推。

2.写objectAnimator文件

在这个文件中我们需要描绘每条线的动画路径。下面是line1的动画,即最下面的动画,这个文件建立在animator文件夹中,并不是anim文件夹。

android:duration="300"

android:propertyName="pathData"

android:valueFrom="

M 20,80

L 50,80,80,80"

android:valueTo="

M 20,50

L 50,80,50,80"

android:valueType="pathType"

android:interpolator="@android:anim/linear_interpolator">

这个文件中有几个属性,我们解释一下valueFrome以及valueTo这两个关键属性:

android:valueFrom="

M 20,80

L 50,80,80,80"

表示从原来的其实位置移动到

android:valueTo="

M 20,50

L 50,80,50,80"

的位置,最下面的interpolator插值器则描绘了动画的缓冲路径。

3.建立animated-vector文件

将上述两个文件粘合在一起,从而完成动画绘制,这个文件同样建立在drawable文件夹中。

android:drawable="@drawable/svg_vecotr_1">

android:animation="@animator/anim_path1"

android:name="path1"/>

android:animation="@animator/anim_path2"

android:name="path3"/>

其中target标签中的animation就是我们vectorAnimator动画,name就是vector文件中的线条。

4.引用

在布局文件中使用android:src="@drawable/svg_1"即可,这个引用的是第三个animated-vector文件。

5.在代码中注册

首先为引用该资源的view注册点击事件,自点击事件中初始化动画:

private void animate() {

Drawable drawable = imageView.getDrawable();

if (drawable instanceof Animatable) {

((Animatable) drawable).start();

}

}

0e869a27ba64?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ezgif-2-a37b90817c.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TI Sitara AM335x系统之AM335x uboot spl分析

本文转载自nidetech的Blog芯片到uboot启动流程ROM → SPL→ uboot.img简介在335x 中ROM code是第一级的bootlader。mpu上电后将会自动执行这里的代码,完成部分初始化和引导第二级的bootlader,第二级的bootlader引导第三级bootader,在ti官方上…

安装vs2017出现闪退现象_二、vs2017出现闪退问题解决办法

1、出现“Project1.exe”(Win32): 已加载“C:\Users\Administrator\Documents\Visual Studio 2017\Projects\Project1\Debug\Project1.exe”。已加载符号。“Project1.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。“Project1.exe”(Win3…

Shell程序荟萃

--------------纯输出----------------1.sh #!/bin/shecho -e "Hello!world!\a\n"exit 0 --------------获得用户输入----------------2.sh #!/bin/shread -p "Please input your name:" nameecho -e "\nHello!$name"exit 0 --------------日期计…

android 安装第三方app,Android识别预装的第三方App方法实例

前言新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的。如果要详细划分,系统App还可根据其路径不同进…

汽车动力电池

1 CE SMPS 1.1 术语 DSCG:Discharge,VBUS下拉放电电阻 flyback:反激 forward:正激 LISN:Line Impedance Stabilization Network SMPS:Switching Mode Power Supplies,开关电源的变压器在整流桥之…

mysql 碎片率_计算MySQL表碎片的SQL整理

原标题:计算MySQL表碎片的SQL整理这是学习笔记的第 2111 篇文章在之前整理过一版MySQL的数据字典,整理了一圈,发现远比想象的复杂。当然整理的过程不光是知识梳理的过程,也是转化为实践场景的一个过程,通过这样一个体系…

全志A10 Bootload加载过程分析

A10的启动过程大概可分为5步:BootRom,SPL,Uboot,Kernel,RootFileSystem。本文只关注镜像的加载过程,分析RootRom->SPL->Uboot的启动流程。系统上电后,ARM处理器在复位时从地址0x000000开始…

android老 电池,为什么安卓手机不会因为电池的老化而降频呢?

前段时间,苹果手机的降频事件也是闹的沸沸扬扬,库克也为此进行了公开道歉,各位的吃瓜群众也是看的不亦乐乎,于是,也有不少的小伙伴会问:“为什么安卓手机不会因为电池的老化而降频?”今天&#…

华为笔记本软件商店_华为应用市场电脑版

华为应用市场电脑版是一款手机自带的应用商店下载中心,华为应用市场电脑版能够为用户提供新鲜、好玩的Android应用,华为应用市场电脑版能完美运行的应用和游戏,软件拥有独家“一键安装”的功能,它拥有智能搜索引擎,它也…

解决bbb无法加载uImage问题

使用sdk6,emmc的烧写都完成后,uboot启动后,无法加载uImage。 修改u-boot include/configs/am335x_evm.h的 CONFIG_EXTRA_ENV_SETTINGS 环境变量设置 将mmcdev0改为1即可 因为bbb上面,emmc是在mmc1上面,sd卡是在m…

修改spfile位置

虽然很多地方不建议这么做,可是有HA、oracle软件建在本地盘的情况下,如果spfile放在dbs下,会导致每次修改spfile都要去手动copy到备机上,这是很麻烦的一件事情,所以我把spflie放在随ha切换的存储磁盘上。 (…

android 解析错误 真机,AndroidStudio使用真机调试时出的一些bug

文章目录说明高德地图报错 - 错误代码7, key错误OPPO/VIVO手机安装时包解析错误说明此处记录一些这种情况的bug : 在用正式签名打包上线使用的时候没问题, 但是使用USB安装调试的时候会有的bug .高德地图报错 - 错误代码7, key错误场景 : 使用AndroidStudio开发,项目…

mybatis plug 只查id_Mybatis一对多/多对多查询时只查出了一条数据

问题描述:如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据。三个表,权限表(Permission),权限组表(PermissionGroup),权限组与权限的关系表(Permission…

Javascript设置对象属性为只读

有时为了保护某些属性,让其无法被更改,我们会把他们设置为常量。 在某些语言里面,也许会用const来实现这样的功能。本文讲述如何在Javascript中实现这样的功能。 方法一: var myObject {get readOnlyProperty() { return 1024; } };alert(my…

linux下gsoap的初次使用 (c)

这两天,接到一个项目,需要在linux程序中调用远程的web应用,通过soap协议。开始上网查了下资料,发现了gsoap库这个好东东^_^。继续在网上搜索例子代码,发现基本都不可编译通过,于是便一边学习一边写了这个最…

android 5.0.1 libdvm.so,Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)

本文作者:i春秋作家HAI_ZHU000 前言市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump。Dalvik模式是Android 4.4及其以下采用的模式,之后到了Android 5.0 之后就是ART模式,关于这两个模式的详细内容&…

python bunch制作可导入数据_Python bunch包_程序模块 - PyPI - Python中文网

bunch是一个支持属性样式访问的字典,一个la javascript。>>> b Bunch()>>> b.hello world>>> b.helloworld>>> b[hello] "!">>> b.helloworld!>>> b.foo Bunch(lolTrue)>>> b.foo.lo…

浪潮之巅 笔记

14.2 诺威格(Peter Norvig,Google研究院主任,ACM Fellow,人工智能专家)定理:当一个公司的市场占有率超过50%后,就无法再使市场占有率翻翻了。在一个市场占有主导地位的公司必须不断开拓新的财源,才能做到长…

Linux下gSOAP的使用 (c++)

1、下载gSOAP在gSOAP官网中可以找到最新的gSOAP安装包以及相关的文档gSOAP官网:http://www.cs.fsu.edu/~engelen/soap.htmlgSOAP下载地址:http://sourceforge.net/projects/gsoap2/files/ 2、安装gSOAPa、解压zip压缩包命令:unzip gsoap_2.7.…

android+3.0新加的动画,Android动画片

使用Android两年多了,工作中的动画也动能应付,自认为Android中的动画自己也能用个八九不离十,结果我在学习[Periscope点赞效果](http://www.jianshu.com/p/03fdcfd3ae9c)的时候发现动画的这些高级功能我从没用过、也没见过,静下来…