2013-02-08 1 views
0

canvas.drawBitmap의 Android 설명서가 잘못 되었나요? 그것은 말한다 :Android canvas.drawBitmap 설명서가 잘못 되었습니까?

공공 무효 drawBitmap 지정된 사용, (x, y)에 자사의 좌/상단 모서리에,

지정된 비트 맵을 그리기 (비트 맵 비트 맵, 페인트 페인트, 플로트 위, 왼쪽 및 float) 페인트, 현재 매트릭스에 의해 변형.

음, x와 y는 실수로 보이지 않습니다. int입니다. 그 맞습니까? 사용 가능한 전체 화면에서 비트 맵 (사용 가능한 화면의 크기이며 동일한 캔버스에 바인딩 됨)을 오버레이한다고 가정 해 보겠습니다. 그것은 합리적인 것 같습니다 : canvas.drawBitmap(myBitmap, 0, 0, mPaint); 그렇지 않습니까? 하지만 그건 작동하지 않습니다. 작동하는 것으로 보이는 것은 : canvas.drawBitmap(myBitmap, 2000000, 1000000, mPaint)입니다. 이제 그 문장은 비트 맵에 거대한 거리를 그려야한다고 이야기합니다. 화면 바깥 쪽! 내가 여기서 무엇을 놓치고 있니?

+0

Android 설명서가 정확한지, (0,0)은 화면의 왼쪽 상단입니다. 코드로 질문을 편집 할 수 있습니까? – NaviRamyle

+0

"현재 행렬에 의해 변형되었습니다.", 캔버스 행렬에 일부 번역이 없는지 확인 했습니까? – iagreen

답변

1

이 방법에서 xy은 정수가 아니라 부동 소수점 수입니다. 그러나 설명서에서 언급 한 것처럼 xy 비트 맵의 ​​좌표는 현재 Canvas에 설정된 매트릭스의 영향을받습니다. 예를 들어, ScrollView의 경우, 행렬은 매우 큰 변환을 포함 할 수 있습니다.

이것은 좌표가 Canvas의 현재 원점에서 비트 맵을 그립니다. 이 원점은 getMatrix()으로 쿼리 할 수있는 행렬에 의해 정의됩니다.

+0

코드를 canvas.drawBitmap(mCalculationBitmap, 0.0f, 0.0f, mPaint);으로 변경했습니다. 전반적인 동작이 개선되었습니다. 아직도 방법. 내가 돌아갈거야. 고맙습니다. – BinCodinLong

+0

@Romain Guy 안녕하세요, 매트릭스 변형을 사용하여 이미지를 원래 크기보다 더 확장하는 방법 ... – Pragnani