3

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

我遇到了Transformation类,它似乎有点不同,但我希望我可以将它用于View子类的一些转换。

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

我猜这也不是一个非常重要的课程,因为文档本身似乎存在错误。

我希望 SO 上的某个人能够帮助我弄清楚如何利用这个类来对我的View子类进行转换(如何构造和应用 a Transformation),或者为我指出一个更好的工具/类来满足我的需求。

4

1 回答 1

2

您通常会在 Android 中的 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);

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

Matrix m = view.getMatrix();
// do whatever you want here
于 2013-08-16T21:39:09.520 回答