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

Android自定义宽高动画

2015-07-29 11:08 676 查看
继承Animation类

覆写applyTransformation(),initialize()

public class ERTWHAnimation extends Animation {
/** 控件 */
private View mView = null;
/** 控件from宽度 */
private int mFromWidth = 0;
/** 控件from高度 */
private int mFromHeight = 0;
/** 控件to高度 */
private int mToWidth = 0;
/** 控件to高度 */
private int mToHeight = 0;

public ERTWHAnimation(View view, float fromW, float fromH, float toW, float toH) {
this.mView = view;
this.mFromWidth = (int) fromW;
this.mToWidth = (int) toW;
this.mFromHeight = (int) fromH;
this.mToHeight = (int) toH;
}
//在绘制动画的过程中会反复的调用applyTransformation 函数,每次调用参数interpolatedTime值都会变化,该参数从0渐变为1,当该参数为1时表明动画结束。
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
int width = (int) (mFromWidth + ((mToWidth - mFromWidth) * interpolatedTime));
int height = (int) (mFromHeight + ((mToHeight - mFromHeight) * interpolatedTime));
try {
ViewGroup.LayoutParams l = mView.getLayoutParams();
l.width = width;
l.height = height;
mView.setLayoutParams(l);
mView.invalidate();
} catch (Exception e) {
Utils.printException(e);
}
}
//这是一个回调函数告诉Animation目标View的大小参数,在这里可以初始化一些相关的参数
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动画