Tôi đang cố gắng vẽ một bitmap xoay quanh tâm của nó và thực hiện xoay mà không thay đổi kích thước bitmap. Tôi đang vẽ tất cả các họa tiết của mình lên màn hình thông qua một chuỗi trò chơi, vì vậy tôi đang tìm một giải pháp kết hợp bitmap gốc chứ không phải khung vẽ.Xoay bitmap của Android xoay quanh tâm mà không thay đổi kích thước
Xin cảm ơn trước.
Đây là mã của tôi cho đến nay, nó biến một bitmap quanh tâm của nó, nhưng thay đổi kích thước nó.
i = i + 2;
transform.postRotate(i, Assets.scoresScreen_LevelStar.getWidth()/2, Assets.scoresScreen_LevelStar.getHeight()/2);
Bitmap resizedBitmap = Bitmap.createBitmap(Assets.scoresScreen_LevelStar, 0, 0, Assets.scoresScreen_LevelStar.getWidth(), Assets.scoresScreen_LevelStar.getHeight(), transform, true);
game.getGraphics().getCanvasGameScreen().drawBitmap(resizedBitmap, null, this.levelStar.getHolderPolygons().get(0), null);
Cập nhật:
tôi đã nhận thấy đây không phải là dễ dàng như nó có vẻ. Mã quay của tôi không phải là vấn đề. Các bitmap quay, nhưng dst rect cũng sẽ phải tăng/giảm tùy thuộc vào góc quay, nếu không bimap sẽ xuất hiện nhỏ hơn, vì nó được vẽ thành một dst rect cố định. Vì vậy, tôi đoán tôi sẽ phải phát triển một số phương pháp mà sẽ trở lại một dst rect. Vì vậy, các phương pháp cần thiết để xoay một bitmap mà không xuất hiện thay đổi kích thước:
public static Bitmap rotateBitmap(Bitmap bitmap, int rotation) // I've got this method working
và
public static Rect rotateRect(Rect currentDst, int rotation) // Don't got this
Tôi hiểu điều này sẽ đòi hỏi một số môn toán (trang điểm), bất cứ ai lên cho thách thức? : P
Bạn đã thử gì cho đến nay? Bạn có thể đăng một số ví dụ về những gì đã không làm việc cho bạn? –
Android thẳng hoặc Cocos2d-x? – Fallenreaper
Đã cập nhật câu hỏi với mã, @Fallenreaper, tôi đang sử dụng GE của riêng mình, vì vậy hãy chạy Android ngay lập tức. –