取消android所有动画,android – 动画取消动画
正如@Gil正确指出的那样,您必须处理自定义Interpolator实现.好消息是你实际上并不需要自己实现所有东西.您可以组合2种不同的插值公式:加速/减速主动画,减速插补器取消.
基本上这就是你要找的东西:
正常加速/减速动画:
在中间的某处取消它时的动画:
这是我的快速插补器实现:
static class MyInterpolator extends AccelerateDecelerateInterpolator {
private float phaseShift = 0f;
private boolean isCancelled = false;
private float lastInput = 0f;
/**
* Maps a value representing the elapsed fraction of an animation to a value that represents
* the interpolated fraction. This interpolated value is then multiplied by the change in
* value of an animation to derive the animated value at the current elapsed animation time.
*
* @param input A value between 0 and 1.0 indicating our current point
* in the animation where 0 represents the start and 1.0 represents
* the end
* @return The interpolation value. This value can be more than 1.0 for
* interpolators which overshoot their targets, or less than 0 for
* interpolators that undershoot their targets.
*/
@Override
public float getInterpolation(float input) {
lastInput = input;
if(!isCancelled)
{
return super.getInterpolation(input);
}
else
{
return getCancellationInterpolation(input) - phaseShift;
}
}
public void cancel()
{
isCancelled = true;
this.phaseShift = getCancellationInterpolation(lastInput) - super.getInterpolation(lastInput);
}
private float getCancellationInterpolation(float input)
{
return (1.0f - (1.0f - input) * (1.0f - input));
}
}
如您所见,我使用默认插值进行普通动画,并在取消动画时切换减速.显然这段代码并不完美(它不会重置phaseShift值和isCancelled标志,如果你使用重复模式会导致错误计算),但这是你希望自己能够找到的东西:)
我创建了示例项目on GitHub,因此您可以看到它的外观
跟进
我用公式玩了一下,并采用了DecelerateInterpolator实现的第二部分.我介绍了因子参数,它可以帮助您控制取消发生的速度(某种牵引力).设定因子为1.5给我这个:
正如你所看到的,当我在~0.5点点击取消时,动画会更快地被取消(因此它不会像前面的例子那样一直到0.7的距离).它给人一种更好的真实感觉.更高的因素 – 动画停止的速度更快.
这是一个更新的插补器:
static class MyInterpolator extends AccelerateDecelerateInterpolator {
......
private float factor = 1.5f;
.......
private float getCancellationInterpolation(float input)
{
if(factor == 1)
{
return (1.0f - (1.0f - input) * (1.0f - input));
}
else
{
return (float)(1.0f - Math.pow((1.0f - input), 2 * factor));
}
}
}
取消android所有动画,android – 动画取消动画相关推荐
- android jason动画,Android 动画之Lottie动画使用
Android 动画之Lottie动画使用 一:简介 Lottie是Airbnb开源的一套跨平台的完整解决方案,设计师只需要使用After Effects(简称AE)设计动画之后,使用Lottic提供 ...
- android 从底部网上的平移动画_Android属性动画,看完这篇够用了吧
转载自作者新小梦 随着APP的开发周期演进,APP不再满足基础的功能保障,需要有较好视觉体验和交互操作.那么动画效果是必不可少的,动画有帧动画,补间动画,属性动画等等. 本文通过一些简单常见的动画效果 ...
- android 上下扫描动画,Android扫描雷达动画
很简单的一个组合动画,用好基本动画啥子效果都不怕 老规矩先上图 效果图.gif ok 来 既然往下翻那就看看如何实现的吧 首先效果分为两部分 第一部分中间指针(其实这里就是一张图片) 第二部分就是波纹 ...
- Android动画之Property属性动画
2019独角兽企业重金招聘Python工程师标准>>> 为什么引入属性动画? 大家都知道Android常见的动画有tween动画,frame动画.但是随着人们对动画的要求不断提高, ...
- android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类
ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类. ScaleAnimation类中的很多方法都与Animation ...
- android常用窗口动画,android 自定义dialog,窗口动画,
自定义dialog窗口,根据坐标可随意设置dialog显示位置,实现了窗口弹出动画 Java代码: package com.sunxu.org.IndividualityDialog; import ...
- Android动画完全解析--属性动画
一.概述 上篇博客介绍了View动画的简单使用和基本工作原理原理,这篇来学习下属性动画.和View动画不同的是,属性动画不再简单的使用平移.旋转.缩放.透明度这4种变换,代替它们的是ValueAnim ...
- Android移动应用开发之制作动画基础
文章目录 帧动画 主要文件目录 MainActivity frame.xml activity_main.xml 运行 补间动画 主要文件目录 MainActivity alpha.xml rorat ...
- Android动画之AnimatorSet联合动画用法
动画入门和进阶文章列表: Animation动画概述和执行原理 Android动画之补间动画TweenAnimation Android动画之逐帧动画FrameAnimation Android动画之 ...
- android 开红包动画,Android实现红包雨动画效果
本文介绍了Android实现红包雨动画效果,分享给大家,希望对大家有帮助 红包雨 关于实现上面红包雨效果步骤如下: 1.创建一个红包实体类 public class RedPacket { publi ...
最新文章
- 通过Spring配置文件中bean中的property赋值
- Spring Cloud Stream 学习小清单
- Vim强制写入w!的分析
- SAP BOPF和ESF2这两个框架有什么区别
- 高阶函数-语法糖-lambda(三分钟读懂)
- ios入门之消息推送详解
- 用Portainer或UI for Docker可视化管理树莓派容器
- java人脸识别Demo(数据库mongo)
- 自学者福利!腾讯Java开发面试记录,砥砺前行!
- nothing else left on those streets
- Web前端知识点总结(持续更新中...)
- 如何在计算机自动开机时选择用户,电脑如何设置自动开机
- 30天完成700万营业额,这家珠宝店的营销模式,值得借鉴!
- 外包干了三年,废了。
- Unity中ComputeShader入门
- 看懂oracle trc文件,oracle 的 debug 工具 和 分析 trc 文件工具 ass.awk
- 预防域名dns劫持和解决
- django 连接oracle的坑和解决方法
- 点云深度学习系列2——PointNet/PointCNN代码比较(变换矩阵部分)
- UES:地域有界,资产无国界
热门文章
- 通用软件滤波算法-前序
- 神经网络硕士就业前景,计算神经科学就业前景
- 进销存excel_超实用Excel完整进销存管理系统,多功能实现,轻松套用赶GET
- viper4android哪个版本好,ViPER4Android FX蝰蛇音效下载-ViPER4Android FX蝰蛇音效 v2.7.0.0_手机乐园...
- xshell如何设置选中复制_Xshell
- Android APP启动图标尺寸
- atmega328p引脚图_【ATMEGA328P-PU PDF数据手册】_中文资料_引脚图及功能_(爱特美尔 ATMEL)-采芯网...
- 电子元器件选型——MOSFET
- 关于intel六代/七代CPU安装win7系统解决USB3.0驱动的镜像文件
- python web全栈工程师招聘_【笔记】Web全栈工程师的自我修养(上)