2012-10-28 3 views
2

어떻게 둘 다 비트 맵의 ​​위치를 ​​변경하고 동시에 회전시킬 수 있는지 알고 싶습니다. 임 캔버스에서 그리기.비트 맵의 ​​회전 및 위치 설정

임은 현재 코드 줄 사용 :

canvas.drawBitmap(bitmap, posX, posY, paint); 

을 나는 최선의 선택을 회전 매트릭스를한다하여 생각? 문제는 위에 게시 된 코드 줄이 행렬이 아니라 위치를 취한다는 것입니다.

canvas.drawBitmap(bitmap, matrix, paint); 

이 하나가 위치를 행렬 걸리지 만하지 :

도 비슷한 코드 라인이있다.

어떻게해야합니까?

+0

어떤 기술/언어/플랫폼을 사용하고 있습니까? –

+0

태그가 추가되었습니다. :) – Sebastian

답변

0

위치를 posMatrix로하여 행렬에 곱하십시오. 그런 다음 결과 행렬을 매개 변수로 전달하십시오.

편집 ---

Matrix myTransformedMatrix = new Matrix(); 
myTransformedMatrix.setRotate(<rotation in dergrees>); 
myTransformedMatrix.setTranslate(<translation in points>); 

canvas.drawBitmap(bitmap, myTransformedMatrix, paint); 

매트릭스 클래스에 대한 추가 정보를 원하시면 즉 http://developer.android.com/reference/android/graphics/Matrix.html

+0

죄송합니다, 코드 조각을 줄 수 있습니까? , 아직이게 좋지는 않은데 :) – Sebastian

+0

위치를 설정하고 회전 할 수없는 이유는 무엇입니까? 그것은 내 교체를 무시합니까? matrix.setRotate (90); \t \t \t matrix.setTranslate (pos_X, 15); \t \t \t canvas.drawBitmap (비트 맵, 매트릭스, 페인트); – Sebastian

+0

matrix.postRotate (90)를 사용해보십시오. –

1
Matrix matrix = new Matrix(); 
matrix.SetRotate(90,pivotX,pivotY); 
matrix.PostTranslate(positionX,positionY); 
canvas.drawBitmap(bitmap, matrix , null); 

로 이동 - 회전 후 위치 을 설정합니다.

관련 문제