有时候开发的过程中需要实现一些自定义的动画,自定义的动画需要继承自Animation类,自定义动画无非就是通过Matrix实现对矩阵的变化。
public class MyAnimation extends Animation {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
Log.e("MyAnimation", "applyTransformation interpolatedTime is "
+ interpolatedTime);
t.getMatrix().postRotate((int) (720 * interpolatedTime), 5, 5);
t.getMatrix().postScale(interpolatedTime, interpolatedTime, 5, 5);
}
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
public void setInterpolator(Interpolator i) {
// TODO Auto-generated method stub
super.setInterpolator(i);
}
class MyInterpolator implements Interpolator {
@Override
public float getInterpolation(float input) {
return input;
}
}
以上代码 在 applyTransformation()方法一直被调用从0.0f到1.0f变化,通过调用Matrix的方法实现动画的执行