我创建一个特定大小的矩形,现在我想将它旋转到45度,我使用canvas.rotate,矩阵,但不工作.如何在
android中旋转画布的正确方法?我对Path.Direction.CW感到好奇,是否用于旋转?但我没有在Path()中看到任何旋转功能
paint.setAntiAlias(true); paint.setstrokeWidth(2); paint.setColor(Color.BLUE); paint.setAlpha(75); Path path = new Path(); path.addRect(166,748,314,890,Path.Direction.CW); canvas.rotate(45); canvas.drawPath(path,paint);
解决方法
要绘制旋转的矩形,您需要在绘制之前旋转画布(如果您正在绘制任何其他内容,则将其向右旋转至右侧). Canvas.rotate()只是改变了画布的变换矩阵,它转换了调用后绘制的形状.
canvas.save(); canvas.rotate(45); canvas.drawRect(166,paint); canvas.restore();
Path.Direction与旋转变换无关.从docs:
Specifies how closed shapes (e.g. rects,ovals) are oriented when they are added to a path.