您的位置:首页 > 移动开发 > Android开发

Android 重写Animation实现实现下拉图片后弹射回去效果

2016-05-29 13:00 387 查看
解析:

1)interpolatedTime指的是平移的变化率(从0到1)

2)mStartHeight 控件开始的高度

3)endHeight 控件竖直移动后的高度

4)mImageView.requestLayout(); 图片在改变高度后填充布局并固定

5)ValueUtil.evalute(interpolatedTime, mStartHeight, mEndHeight) + 0.5f) 得到变化后的高度

———————————————————————

有需求者请加qq:136137465,非诚勿扰

(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)

01.高级架构师四十二个阶段高

02.Java高级系统培训架构课程148课时

03.Java高级互联网架构师课程

04.Java互联网架构Netty、Nio、Mina等-视频教程

05.Java高级架构设计2016整理-视频教程

06.架构师基础、高级片

07.Java架构师必修linux运维系列课程

08.Java高级系统培训架构课程116课时

(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)

——————————————————————–

代码:

/**
* @描述         使用平移动画实现下拉图片后弹射回去
* @项目名称      App_imooc
* @包名         com.android.imooc.paralla
* @类名         ResetAnimation
* @author      chenlin
* @date        2015年5月29日 下午12:27:00
* @version     1.0
*/

public class ResetAnimation extends Animation {
private ImageView mImageView;
private int mStartHeight;
private int mEndHeight;

public ResetAnimation(ImageView imageView, int startHeight, int endHeight) {
this.mImageView = imageView;
this.mStartHeight = startHeight;
this.mEndHeight = endHeight;

setDuration(500);
}

@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
int newHeight = (int) (ValueUtil.evalute(interpolatedTime, mStartHeight, mEndHeight) + 0.5f);
mImageView.getLayoutParams().height = newHeight;
mImageView.requestLayout();
super.applyTransformation(interpolatedTime, t);
}
}


3、使用方法:

//竖直移动动画

ResetAnimation anim = new ResetAnimation(mImageView, startHeight, endHeight);
anim.setInterpolator(new OvershootInterpolator());
startAnimation(anim);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 动画 图片