我试图为Android FrameLayout / View设置矩阵,如下面的代码。但是应用矩阵后,视图中没有变化
FrameView.Matrix.Set(matrix);
相同的矩阵用于图像视图
提前致谢
答案 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()