android-反转动画

我有一个ImageView,当它添加到布局中时会动画。删除后,我想反转相同的动画。

有没有一种方法可以在android中反转动画而无需重新编码和反转参数?

pbreault asked 2020-07-08T06:22:20Z

8个解决方案

75 votes

不,可悲的是您不能使用Animation对象来做到这一点。但是,您可以使用将反转动画的插值器对其进行仿真:

package com.example.android;

import android.view.animation.Interpolator;

public class ReverseInterpolator implements Interpolator {

@Override

public float getInterpolation(float paramFloat) {

return Math.abs(paramFloat -1f);

}

}

然后可以在动画上设置新的插值器:

myAnimation.setInterpolator(new ReverseInterpolator());

pcans answered 2020-07-08T06:22:41Z

25 votes

如果您使用Object或ValueAnimator对视图进行动画处理,则只需

ValueAnimator myAnimator = new ValueAnimator();

myAnimator.reverse()

文档可以在这里找到。

thehayro answered 2020-07-08T06:23:06Z

13 votes

基于pcans的想法,您可以反转任何内插器,而不仅仅是线性。

class ReverseInterpolator implements Interpolator{

private final Interpolator delegate;

public ReverseInterpolator(Interpolator delegate){

this.delegate = delegate;

}

public ReverseInterpolator(){

this(new LinearInterpolator());

}

@Override

public float getInterpolation(float input) {

return 1 - delegate.getInterpolation(input);

}

}

用法

ReverseInterpolator reverseInterpolator = new ReverseInterpolator(new AccelerateInterpolator())

myAnimation.setInterpolator(reverseInterpolator);

Ilya Gazman answered 2020-07-08T06:23:31Z

6 votes

对于pcan,我有类似的方法,但略有不同。 它需要Interpolator,并将有效地传出与在Interpolator中正常使用然后在REVERSE模式下使用的值相同的值。 让您不必考虑在Android上Animation.REVERSE的错误实现。 在这里查看代码

public class ReverseInterpolator implements Interpolator {

private final Interpolator mInterpolator;

public ReverseInterpolator(Interpolator interpolator){

mInterpolator = interpolator;

}

@Override

public float getInterpolation(float input) {

return mInterpolator.getInterpolation(reverseInput(input));

}

/**

* Map value so 0-0.5 = 0-1 and 0.5-1 = 1-0

*/

private float reverseInput(float input){

if(input <= 0.5)

return input*2;

else

return Math.abs(input-1)*2;

}

}

Dori answered 2020-07-08T06:23:53Z

1 votes

您可以使代码记住原始位置和结束位置。 并让您的代码在触发动画时动态获取这些值。

draw answered 2020-07-08T06:24:13Z

1 votes

我想到的最简单的解决方案

android:duration="2000"

android:fromAlpha="0.1"

android:repeatCount="infinite"

android:repeatMode="reverse"

android:toAlpha="1.0">

larisoft answered 2020-07-08T06:24:33Z

0 votes

如果您使用的是xml中的动画,那么一种简单的方法是制作与原始动画完全相同的反向动画。 将Animation.AnimationListener添加到原始动画中,并在onAnimationEnd中启动反向动画。

Khurram Shehzad answered 2020-07-08T06:24:53Z

0 votes

这对我有用

ObjectAnimator anim = ObjectAnimator.ofFloat(imageViewUpb, "rotation", rotationAngle, rotationAngle + 180);

if (linearLayoutb.getVisibility()==GONE){

linearLayoutb.setVisibility(VISIBLE);

anim.setDuration(500);

anim.start();

rotationAngle += 180;

rotationAngle = rotationAngle%360;

imageViewUpb.animate().rotation(rotationAngle).setDuration(500).start();

}else{

linearLayoutb.setVisibility(GONE);

anim.setDuration(500);

anim.start();

rotationAngle += 180;

rotationAngle = rotationAngle%180;

imageViewUpDownb.animate().rotation(rotationAngle).setDuration(500).start();

}

linearlayoutb是当imageviewUpb朝上时展开的视图

使int rotationAngle = 0; global parameter

Goodlife answered 2020-07-08T06:25:22Z

android 页面反转动画,android-反转动画相关推荐

  1. android页面布局计算机,Android Studio制作简单计算器App

    Android Studio制作简单计算器App 计算机界面如图: 程序设计步骤: (1)在布局文件中声明编辑文件框EditText,按钮Button等组件. (2)在MainActivity中获取组 ...

  2. android页面统计代码,android流量统计(示例代码)

    android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static l ...

  3. android 页面翻转进场动画_Android实现翻转及延迟动画效果

    最近在学习安卓一些动画效果制作.做了点翻转和延迟入场动画的效果,并做了些封装.动画基于属性动画实现的,所以仅能在api11以后运行,不过现在应该也没有11以前的机器了吧...废话不多说,先上效果再贴代 ...

  4. android 图片查看动画,Android 共享动画实现点击列表图片跳转查看大图页面

    主要内容使用系统提供的 API 实现共享动画 在实现过程中遇到的问题图片点击和关闭之后会出现短暂的黑屏问题实现的动画效果如下: 共享动画.gif 具体实现这个效果是在两个页面之间的切换动画,既然是两个 ...

  5. Android 页面或文件或网络请求时的加载动画

    //加载图片或页面或网络请求时出现加载动画 public Class LoadingAnimation{ private static LoadingAnimation loadingAnimatio ...

  6. android 页面退出动画,android Activity打开和关闭动画

    activity 之间的动画跳转,或者是关闭的的时候的动画关闭. public class SActivity extends AppCompatActivity { @Override protec ...

  7. android tabhost 动画,Android中使用TabHost 与 Fragment 制作页面切换效果

    三个标签页置于顶端 效果图: 在文件BoardTabHost.java中定义页面切换的效果:切换页面时,当前页面滑出,目标页面滑入.这是2个不同的动画设定动画时要区分对待 import android ...

  8. android finish动画,Android 关于Activity的跳转和finish时切换页面动画实现

    今天沈阳斌子在做APP时,客户的需求变更是在原有的程序上加入跳转页面的动画切换,类似IPhone的左出右进的方式,返回时是相反的效果.我知道用两种方式可以实现这样的效果,一种就是通过在startAct ...

  9. Android 页面进行镜像反转-面试

    解决思路 因为Android 的绘制Canvas 是从根层往下遍历,所以我们在dispatchDraw 方法块里面对Canvas 进行镜像旋转即可. 当时没有回答上来,其实大概知道思路,但是不知道怎么 ...

最新文章

  1. Java Eclipse解决中文字体太小
  2. 如何获取服务器上文件的hashcode,java获取文件hashcode
  3. 第四范式发布Sage AIOS 2.0及智能应用市场Sage App Store
  4. putty串口打开没反应_如何使用树莓派快速搭建一个串口数据记录器?
  5. python 整合excel_python EXcel表整合(自动办公)
  6. python3萌新入门笔记_我的Python3萌新入门笔记
  7. Linux Shell文本处理工具集锦
  8. mysql xp cmdshell_LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句...
  9. http协议中的响应代码从 1xx ~ 5xx,一共有41种
  10. Sentinel服务熔断配置exceptionsToIgnore_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0053
  11. VIM快捷键(转载)
  12. “const char*”类型的值不能用于初始化“char”类型的实体
  13. tampermonkey(油猴)跨域发送请求
  14. 计算机网络应用基础心得体会,计算机网络技术学习心得体会
  15. BTC 查询交易明细信息
  16. 【译】LiveData三连
  17. Java编程练习之:转换罗马数字
  18. 中南民族大学计算机图像处理实验报告,中南民族大学数字图像处理实验报告.docx...
  19. mysql查找 提速_MySQL加速查询速度的独门武器:查询缓存
  20. sklearn中warm_start参数的作用详解

热门文章

  1. 相对路径和绝对路径 区别
  2. echarts里的seriesIndex 和dataIndex是什么意思
  3. ununtu20.04系统中如何划词翻译_真正的桌面端全能翻译软件,随时随地划词翻译...
  4. 优酷是如何防止视频被越权下载
  5. 一边学计算机一边上班累的说说,有关上班的心情说说,关于上班累的说说大全...
  6. 蓝桥杯电子类单片机组模块——独立按键(长按与短按)
  7. java基本语法循环语句 —for循环
  8. 【初识python 1】Python PPT PDF 转成图片
  9. C语言库函数中的Strcat函数
  10. 【Python】timedelta类详解