2011-07-04 8 views
2

비트 맵의 ​​화면 높이가 화면보다 커서 비트 맵을 오른쪽 또는 왼쪽으로 조금 이동하면 전체 이미지를 볼 수 있도록 바탕 화면이 변경됩니다. .onOffsetsChanged : move 비트 맵

 int x = -1*(int)((xOffset*bmp.getWidth())); 
     canvas.drawBitmap(bmp, x, 0, null); 

가 감사 :

여기에 단지 부분적으로 작동하는 내 코드입니다!

답변

1

정확한 픽셀 값은 onOffsetsChanged()의 xPixels 및 yPixels 변수를 통해 얻을 수 있습니다. 여기에 내 대답을 참조하십시오 android live wallpaper rescaling

예를 들어, onOffsetsChanged(), 당신은

holder = getSurfaceHolder(); 
c = holder.lockCanvas(); 
c.translate(mPixels, 0f); 
// c.drawBitmap ... goes here :-) 

일반적으로 일상 드로우에서,

mPixels = xPixels; 

그런 변수 개인 클래스를 설정할 수 있습니다, 당신이 원하는 것 중간에 가운데에 아트웍이있는 상태에서 화면 너비의 두 배가되는 비트 맵입니다. 예 : 320 픽셀 너비 화면 → 160 픽셀에서 480 픽셀 사이의 640 픽셀 너비 비트 맵. mPixels는 가장 왼쪽 실행기 화면 (5)에서 0, 가운데에서 -160, 가장 오른쪽 화면에서 -320 .

+0

아니요, 내가 마지막 화면으로 가면 여전히 검은 색 방이 있습니다 ... – nomoral

+0

@nomoral 나는 단지 미묘한 실수를하고 있다고 추측 할 수 있습니다 ... 너무 작거나 잘못된 밀도의 비트 맵, 코드를 볼 수 없으면 작동하는 오픈 소스 예제를 찾고이를 수행 한 것과 비교할 것을 제안 할 수 있습니다. –

+0

수동으로 계산할 방법이 없습니까? – nomoral