本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答