“View.getMatrix”中的矩阵和“动画转换”中的矩阵是一样的吗?

时间:2014-07-26 16:01:52

标签: android animation matrix view transformation

对Android View的矩阵和动画有一些疑惑:

背景

(1)Matrix1:动画变换中的矩阵可以应用于视图以实现动画:

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
  }
}

(2)Matrix2:在Honeycomb Android之后,你应该能够通过操纵视图上的矩阵来做类似的事情:

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

当然,您也可以在" View.getMatrix"中更改矩阵。通过view.setScale或view.setRotation。

问题:

(1)这两个矩阵是一样的吗?如果动画应用于视图并且setFillAfter设置为true,动画矩阵是否会更改View.getMatrix的结果?

(2)据我所知,所有动画都不会真正改变视图布局,只会改变它的显示方式。(你可以使用一个按钮和setOnClickListener,无论你使用哪种动画,都可以看到它,点击仅适用于其原始位置和大小)。那么," view.setScale"," view.setTranslation"和" view.setRotation"以同样的方式工作?

(3)在API参考中,它描述了View.getMatrix:"该视图的变换矩阵,它是根据当前的旋转,比例和透视属性计算的。"为什么"翻译属性"不包括在这个矩阵中?

顺便说一下,我真正想做的是计算父母的职位。以后代的坐标给出时的坐标。

不要回答你回复中的所有问题。任何与该主题相关的意见表示赞赏!非常感谢你!

0 个答案:

没有答案