3

私は iOS のバックグラウンドから来ました。そこでは、 (また)transformに適用される 3D 変換のための本質的に単なる 4x4 マトリックスであるというプロパティがありました。CALayerUIView

少し違うように見えるTransformationクラスに出くわしましたが、Viewサブクラスのいくつかの変換に使用できることを望んでいます。

コンストラクターnew Transformation()とさまざまなメソッドを見てきましたが、 の 3x3 マトリックスを実際に設定したり、 で使用する方法setを実際に設定できるものは何も表示されません。TransformationView

ドキュメント自体にエラーがあるように見えるので、これもあまり重要なクラスではないと思います。

SO の誰かが、このクラスを利用してViewサブクラスで変換を行う方法 ( を構築して適用する方法Transformation) を理解するのを手伝ってくれるか、私のニーズに合ったより良いツール/クラスを教えてくれることを望んでいました。

4

1 に答える 1

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);

ただし、Honeycomb Android 以降では、ビューでマトリックスを操作するだけで同様のことができるはずです。

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