欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-11-28 21:35:34
本文实例讲述了android开发重写animation实现下拉图片后弹射回去效果。分享给大家供大家参考,具体如下: 1. 解析: 1)interpolatedtime指...

本文实例讲述了android开发重写animation实现下拉图片后弹射回去效果。分享给大家供大家参考,具体如下:

1. 解析:

1)interpolatedtime指的是平移的变化率(从0到1)
2)mstartheight 控件开始的高度
3)endheight 控件竖直移动后的高度
4)mimageview.requestlayout(); 图片在改变高度后填充布局并固定
5)valueutil.evalute(interpolatedtime, mstartheight, mendheight) + 0.5f) 得到变化后的高度

2. 代码:

/**
 * @描述     使用平移动画实现下拉图片后弹射回去
 * @项目名称   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相关内容感兴趣的读者可查看本站专题:《android开发动画技巧汇总》、《android开发入门与进阶教程》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android文件操作技巧汇总》、《android资源操作技巧汇总》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。