我有ImageView
个自定义onDraw
,我在某些(x,y)坐标上绘制了许多位图。这些位图无法更改。我想将整个图像旋转-90度,以便水平绘制的图像垂直放置。 (是的,这个视图存在于纵向模式应用程序中。)
我使用Canvas.rotate
,Canvas.scale
和Matrix.postRotate
尝试了多种变体,但没有成功。旋转很容易,但是获得所需的布局似乎是不可能的。我在绘制的对象在视图外面被禁止。我显然对枢轴坐标或其他什么做错了。任何帮助表示赞赏!
canvas.rotate(-90.0f, getWidth() / 2, getHeight() / 2);
旋转画布的最佳解决方案是什么?
答案 0 :(得分:0)
看看这是否有帮助。来自API演示的Compass.java示例首先使用canvas.translate,然后使用仅限角度的canvas.rotate。
int w = canvas.getWidth();
int h = canvas.getHeight();
int cx = w / 2;
int cy = h / 2;
canvas.translate(cx, cy);
if (mValues != null) {
canvas.rotate(-mValues[0]);
}