사용자 클릭을 기준으로 10 도씩 비트 맵 이미지를 회전하고 싶습니다. 수많은 stackoverflow 및 google 답변에 이어 Matrix 순환 게재의 다양한 조합을 시도했습니다.진동 운동없이 이미지 중심에 대해 안드로이드에서 비트 맵을 부드럽게 회전하는 방법
그러나 실제로 이미지가 예상대로 회전하지 않으며 캔버스 중심에 대한 회전 + 진동의 시야를 제공합니다. 테스트하려면 개체의 그리기 메서드가 호출 될 때마다 회전 각을 클릭 대신 10 ° 씩 증가시킵니다. 이미지는 [64x64 사각형을 포함하는 대칭 원형]이며, 휠과 같이 자신의 중심에 대해 화면 중심에서 회전하려고하지만 회전 및 대각선 방향으로 오른쪽 아래로 이동하고 진동 중심으로 화면의 중심까지 움직입니다. .
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);
}
감사합니다. 매트릭스를 'draw'메소드 밖으로 이동하고 매트릭스가 재설정되지 않도록 보장하여 [부드러운 회전 효과를 제공합니다.] 또한 처음 두 개의 post * 메소드 대신'matrix.setRotate (rotation, bitmap.getWidth()/2, bitmap.getHeight()/2); – Anshul
답장을 보내 주셔서 감사합니다. 그것은 내 하루를 저장합니다. – Siddharth
여기이보기는 어느 것입니까? –