有很多地方要用到旋转动画,而且方法也不少,这里介绍的是利用Camera和Matrix来实现的。
废话不多说,先上代码:
public class RotateYAnimation extends Animation {
int centerX, centerY;
Camera camera = new Camera();
/**
* 获取坐标,定义动画时间
* @param width
* @param height
* @param parentWidth
* @param parentHeight
*/
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
//获得中心点坐标
centerX = width / 2;
centerY = width / 2;
//动画执行时间 自行定义
setInterpolator(new OvershootInterpolator());
}
/**
* 旋转的角度设置
* @param interpolatedTime
* @param t
*/
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final Matrix matrix = t.getMatrix();