动画转型

时间:2013-01-14 15:07:29

标签: android animation matrix transformation

我来自iOS背景,其中有一个名为transform的属性,它实际上只是一个4x4矩阵,用于应用于CALayer的3D转换(同时UIView )。

我遇到了Transformation类,它看起来有点不同,但我希望我可以将它用于View子类的某些转换。

我已经看到了构造函数new Transformation()和不同的set方法,但我看不到任何可以让我为Transformation实际设置3x3矩阵或者它如何设置用于View

我猜这不是一个非常重要的类,因为文档本身似乎有错误。

我希望SO上的某个人能够帮助我弄清楚如何利用这个类来完成我的View子类(如何构造和应用Transformation)或点的转换我为了满足自己的需求而提供更好的工具/课程。

1 个答案:

答案 0 :(得分:2)

您通常在Android中的Animation对象中应用转换。即创建一个新的Animation类,为您的视图设置转换:

public class myAnimation extends Animation {
  public myAnimation() { }

  @Override
  boolean   willChangeTransformationMatrix() { return true; }

  @Override
  void  applyTransformation(float interpolatedTime, Transformation t) {
    Matrix m = t.getMatrix();
    // do whatever you want to the matrix here, using the interpolatedTime
  }
}

然后在视图上设置动画:

Animation anim = new myAnimation();
anim.setDuration(100);
view.startAnimation(anim);

在Postcomb Honeycomb Android上,你应该能够通过操纵视图上的矩阵来做类似的事情:

Matrix m = view.getMatrix();
// do whatever you want here