- 继承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;
}
@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);
}
}
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
}