簡體   English   中英

如何在Android中旋轉畫布上繪制的矩形?

[英]How to rotate a rectangle drawn on canvas in Android?

我正在使用以下代碼在android畫布上繪制文本

        Rect rect = new Rect();
        paint.getTextBounds(text, 0, text.length(), rect);
        canvas.translate(xPosition + position.getX(), yPosition + position.getY());
        paint.setColor(Color.BLUE);
        paint.setStyle(Style.STROKE);
        canvas.drawRect(rect, paint);
        paint.setStyle(Style.FILL);
        paint.setColor(text_color);
        canvas.translate(-(xPosition + position.getX()), -(yPosition + position.getY()));
        canvas.rotate(getDegreesFromRadians(angle), xPosition + position.getX() + rect.exactCenterX(), yPosition + position.getY() + rect.exactCenterY());
        canvas.drawText(text, xPosition + position.getX(), yPosition + position.getY(), paint);

此代碼負責文本的旋轉,並且工作正常。 我正在使用上面的代碼在文本周圍繪制一個藍色矩形。 現在我的問題是矩形不隨文本一起旋轉。 它仍然保持不變。 有沒有辦法旋轉Android畫布中繪制的矩形?

請用

canvas.save();
canvas.rotate();
//stuff to draw that should be rotated
canvas.restore();

否則你必須補償之后的每一次輪換

我找到了自己的答案。 我使用了以下代碼

Rect rect = new Rect();
        paint.setColor(text_color);
        paint.setStyle(Style.FILL);
        paint.getTextBounds(text, 0, text.length(), rect);
        canvas.translate(xPosition + position.getX(), yPosition + position.getY());
        canvas.translate(-(xPosition + position.getX()), -(yPosition + position.getY()));
        canvas.rotate(getDegreesFromRadians(angle), xPosition + position.getX() + rect.exactCenterX(), yPosition + position.getY() + rect.exactCenterY());
        canvas.drawText(text, xPosition + position.getX(), yPosition + position.getY(), paint);
        paint.getTextBounds(text, 0, text.length(), rect);
        canvas.translate(xPosition + position.getX(), yPosition + position.getY());
        paint.setColor(Color.BLUE);
        paint.setStyle(Style.STROKE);
        paint.setStrokeWidth(4);
        rect = new Rect(rect.left - 10, rect.top - 10, rect.right + 10, rect.bottom + 10);
        canvas.drawRect(rect, paint);

事情是整個畫布正在旋轉以旋轉文本。 所以我只需要在畫布旋轉后繪制矩形。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM