如何为Android FrameLayout设置矩阵?

时间:2018-04-09 10:27:46

标签: android matrix xamarin.android

我试图为Android FrameLayout / View设置矩阵,如下面的代码。但是应用矩阵后,视图中没有变化

FrameView.Matrix.Set(matrix);

相同的矩阵用于图像视图

提前致谢

1 个答案:

答案 0 :(得分:0)

  

但是在应用矩阵

后视图中没有变化

原因是矩阵未应用于布局。 FrameLayout没有set方法来设置Matrix。

FrameView.Matrix用于获取FrameView的Matrix。并且Matrix.Set(matrix)会更改从FrameView获得的Matrix的值,但不适用于它  例如:

var frameLayout = FindViewById<FrameLayout>(Resource.Id.frameLayout1);
float[] f = new float[9];
float[] f2 = new float[9];
float[] f3 = new float[9];
Matrix matrix = new Matrix();
matrix.PostRotate(10);
matrix.GetValues(f);
frameLayout.Matrix.GetValues(f2);
frameLayout.Matrix.Set(matrix);
frameLayout.Matrix.GetValues(f3);

调用set方法后。 Matrix(f3)的值仍然与原始值(f2)相同。

如果您想对布局进行一些更改,可以使用自定义布局并在OnDraw()

中执行此操作