上下回弹动画
来源:互联网 发布:java上最简单的游戏 编辑:程序博客网 时间:2024/05/21 17:59
调用方式:
AnimUtils.kickBackAnim(view,200,2000,1500);
AnimUtils类
/** * AnimUtils */public class AnimUtils {/** * 回弹效果动画 * * @param delayTime 延迟时间 * @param view * @param durationTime 动画持续时长 * @param defoutRange 回弹幅度 */public static void kickBackAnim( final View view, int delayTime,int durationTime,int defoutRange ,String propertyName) { view.setVisibility(View.INVISIBLE); view.postDelayed(new Runnable() { @Override public void run() { //时长 view.setVisibility(View.VISIBLE); ValueAnimator fadeAnim = null; switch (propertyName.toLowerCase()) { case "x": fadeAnim = ObjectAnimator.ofFloat(view, "translationX", defoutRange, 0); break; case "y": fadeAnim = ObjectAnimator.ofFloat(view, "translationY", defoutRange, 0); break; } fadeAnim.setDuration(duration); KickBackAnimator kickAnimator = new KickBackAnimator(); kickAnimator.setDuration(durationTime); fadeAnim.setEvaluator(kickAnimator); fadeAnim.start(); fadeAnim.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { view.clearAnimation(); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); } }, delayTime);}}
KickBackAnimator类:
/** * 上下回弹动画 */public class KickBackAnimator implements TypeEvaluator<Float> { private final float s = 1.70158f; float mDuration = 0f; public void setDuration(float duration) { mDuration = duration; } public Float evaluate(float fraction, Float startValue, Float endValue) { float t = mDuration * fraction; float b = startValue.floatValue(); float c = endValue.floatValue() - startValue.floatValue(); float d = mDuration; float result = calculate(t, b, c, d); return result; } public Float calculate(float t, float b, float c, float d) { return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b; }}
阅读全文
0 0
- 上下回弹动画
- Android超简单实现listview上下拉伸回弹动画效果
- 动画 回弹效果
- iOS回弹动画效果
- android 自定义滚动上下回弹scollView
- 安卓开发中实现页面越界回弹和上下拉的刷新自定义动画的操作(TwinklingRefreshLayout布局的使用)
- iOS动画——回弹动画实例(pop动画)
- 动画蒙太奇 动画上下分层
- 上下跳动的动画
- 位移上下反复动画
- 上下滑动动画
- 【动画】上下滑动
- 【动画】上下滑动
- 动画-图片的上下移动
- jQuery的动画-上下滑动
- 自定义控件:overScrollBy+动画实现 ListView 的头部回弹抖动
- 仿荷包启动动画,金钱掉落,钱包回弹
- 纯css做的页面加载之后div回弹动画
- 关于导航视图控制器下collectionview下移的问题
- CentOS 7 RPM 安装 MySQL5.7
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决办法及原因
- 【腾讯TMQ】VR 视频识别率测试方案
- FormBorderStyle
- 上下回弹动画
- java Collections集合工具的测试
- Android 安装包APK瘦身、多渠道打包总结
- 01分数规划
- 银联网管支付接入步骤
- js url传值中文乱码解决&&通过javascript是如何来获取url中的某个参数
- Python-文件的操作
- VC http通信Get遇见的一个小问题
- 大端小端问题总结及相关面试题