【问题标题】:Transformation for Animation动画转换
【发布时间】:2013-01-14 15:07:29
【问题描述】:

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

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

我已经看到了构造函数 new Transformation() 和不同的 set 方法,但是我看不到任何可以让我为 Transformation 实际设置 3x3 矩阵或如何在 @987654329 上使用它的东西@。

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

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

【问题讨论】:

    标签: android animation matrix transformation


    【解决方案1】:

    您通常会在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 2018-03-06
      • 1970-01-01
      • 2021-11-07
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多