본문 바로가기
GAME/안드로이드_알고리즘

canvas 이미지 회전.

by 므시칸곰틔군 2014. 11. 21.




private Matrix m_Matrix = new Matrix();

private Matrix m_Matrix_ = new Matrix();

//회전 시 기존에 나와있는 Bitmap.createBitmap 할경우 gc 발동 한다. 

//이 방법은 gc 생성없이 부드러운 동작을 한다.

public Matrix setRotate(float degrees, Bitmap bitmap) {

//매트릭스 변수에 m_Matrix_ 을 set 하는 이유는 초기화 하는 듯... 

m_Matrix.set(m_Matrix_);

// 회전 값을 주고 회전할 위치를 정해준다. // 이미지의 중앙을 회전한다.

m_Matrix.postRotate(degrees, bitmap.getWidth() / 2, bitmap.getHeight() / 2);

//위치값을 지정.

m_Matrix.postTranslate(getX() - bitmap.getWidth() / 2, getY() - bitmap.getHeight() / 2);


return m_Matrix;

}


캔버스에

canvas.drawBitmap(m_Bitmap, setRotate(angle + 90, m_Bitmap), null);