我遇到过这段代码,在应用于视图时非常有效:
view.setPivotX(view.getWidth());
view.setPivotY(view.getHeight() * 0.5f);
view.setRotationY(90f * progress);
我尝试了很多配置,只使用Matrix和相机,但这不是我的强项......它甚至可能吗?
View的旋转和Matrix旋转之间的行为是如此根本不同?
我想要完成的是视图之间的动画转换,但我想在没有视图的情况下实现这一点!
特别是像this一样的立方体旋转。
我见过的所有其他例子不会导致同样的效果!!
不同之处在于我想让它在Animation对象中运行,如下所示:
public class CubeRotate
extends Animation {
public CubeRotate() {
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final Matrix matrix = t.getMatrix();
...
What should be here to get the same result?
...
Log.d("Matrix", "\n" + matrix);
}
}
答案 0 :(得分:1)
public static class CubeRotate extends Animation {
private Camera mCamera;
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
mCamera.setLocation(width, height * .5F, 0);
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
mCamera.rotateY(90f * interpolatedTime);
mCamera.getMatrix(t.getMatrix());
}
}