我正在考虑制作类似于以下内容的内容:
这基本上是左上方的一个矩形形状,它被旋转,然后是两个在它下面,像它一样平铺。 我已经去做了,但是不能完成它,基本上我用了:
int x = getWidth();
int y = getHeight();
canvas.save();
canvas.rotate(-45);
canvas.drawRect(x/2, y/2, x/2+100, y/2+40, paint);
canvas.restore();
而且我已经注意到,在屏幕中心附近旋转的矩形应该是屏幕右上角的矩形。当我尝试做类似于(0,0,100,100)的事情时,我根本不会得到任何矩形。
我想我对画布的旋转完成时坐标系是否会发生变化感到困惑,以及在Android上获取上图时最简单的方法是什么(除了在photoshop中创建它并加入之外) png)。
答案 0 :(得分:1)
单个参数rotate()将使用0,0作为支点。
如果你想围绕你的物体旋转,你应该计算它上面的一些点来旋转并使用3参数rotate(),即:
int x = getWidth();
int y = getHeight();
canvas.save();
canvas.rotate(-45, x / 2, y / 2);
canvas.drawRect(x / 2, y / 2, x / 2 + 100, y / 2 + 40, paint);
canvas.restore();
我的设计只是为了好玩:
int x = getWidth();
canvas.rotate(-45);
canvas.drawRect(-x, 0, x, h, green);
canvas.drawRect(-x, h, 0, 2 * h, purple);
canvas.drawRect(0, h, x, 2 * h, blue);
h
是矩形的高度。