动画转换技术

3

我来自iOS开发背景,在那里有一个叫做transform 的属性,它实际上是一个4x4矩阵,用于应用于CALayer(也可以应用于UIView)的3D变换。

我发现了Transformation类,这似乎有一些不同,但我希望我能够在View子类上使用它进行一些变换。

我看到了构造函数new Transformation()和不同的set方法,但我找不到任何可以让我实际设置Transformation的3x3矩阵或者如何在View上使用的方式。

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

我希望这里的某个人能够帮助我解决如何利用这个类使我的View子类工作的问题(如何构造和应用Transformation),或指向一个更适合我的需求的更好的工具/类。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接