Tôi muốn xoay hình ảnh bitmap dựa trên người dùng nhấp vào 10 độ. Sau nhiều stackoverflow và google câu trả lời, tôi đã cố gắng kết hợp khác nhau của Matrix xoay.Cách xoay bitmap trong Android về trung tâm hình ảnh mượt mà mà không có dao động dao động
Tuy nhiên, hình ảnh không thực sự xoay như mong đợi và mang lại một cái nhìn jittery về vòng quay + dao động về trung tâm canvas. Để kiểm tra tôi đang tăng góc quay 10 deg (thay vì nhấp chuột) mỗi phương pháp vẽ của đối tượng thời gian được gọi. Hình ảnh là một vòng tròn đối xứng [64x64 bao quanh hình chữ nhật] và tôi hy vọng nó xoay ở giữa màn hình về trung tâm của nó giống như một bánh xe, nhưng nó quay và di chuyển theo đường chéo về phía dưới bên phải và di chuyển trở lại trung tâm của màn hình theo kiểu dao động .
public void draw(Canvas canvas) {
Matrix matrix = new Matrix();
rotation += 10;
float px = this.viewWidth/2;
float py = this.viewHeight/2;
matrix.setRotate(rotation, bitmap.getWidth()/2, bitmap.getHeight()/2);
Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, getImgWidth(), getImgHeight(), matrix, true);
canvas.drawBitmap(newbmp, px - (getImgWidth()/2), py - (getImgHeight()/2), null);
}
Cảm ơn một loạt !. Có điều này làm việc với việc di chuyển ma trận ra khỏi phương pháp 'vẽ' và đảm bảo ma trận không được đặt lại [cho hiệu ứng xoay mịn]. Cũng được sử dụng 'matrix.setRotate (rotation, bitmap.getWidth()/2, bitmap.getHeight()/2);' thay vì hai phương thức * post đầu tiên. – Anshul
Cảm ơn câu trả lời này. Nó tiết kiệm trong ngày của tôi. – Siddharth
Đây là chế độ xem nào ở đây? –