2011-05-16 5 views
0

나는 안드로이드 개발과 관련하여 조용한 공통 문제가 있다고 생각하지만, 내가 찾지 못하는 답을 찾지 못하는 것 같다.안드로이드, 캔버스 및 스크린

Photoshop 800x480px (240ppi)에서 캔버스를 만들고 캔버스 내에서 282x121px의 로고를 만들면 이미지를 표시 할 때 내 에뮬레이터에서 화면의 3/4을 차지하는 이유를 알 수 없습니다. 동일한 800x480 픽셀.

나는 로고를 표시하기 위해 사용하는 코드는 사전에 다음과 같은

Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo); 

//in the onDraw 
canvas.drawBitmap(logo, 0, 0, null); 

감사합니다!


이이 일을 할 수있는 가장 좋은 방법이며, 어떤 의견을 appriciate 할 경우

확실하지, 나는이 솔루션을 통해 온 해결 방법 (이미 질문을 게시 한 일반적으로 : D)

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inScaled = false; 

//Load images 
logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo, options); 

답변

1

이 이미지는 아마 단지 때문에 스케일링 사전 가끔 안드로이드 것은 수행의 에뮬레이터 화면의 3/4을 차지했다 다음과 같이 이미지를 코딩하는 것이 었습니다.

여러 해상도와 화면 크기를 처리하는 방법에 대해서는 this article을 확인하십시오.

드로어 블을 'res/drawable-mdpi /'디렉토리 또는 'res/drawable-ldpi /'디렉토리에 배치하여 중 밀도 및 저밀도 화면을 구별 할 수 있습니다. 또 다른 옵션은 pre-scaling을 방지하기 위해 'res/drawable-nodpi /'디렉토리에 배치하는 것입니다. 심지어 같은 효과를 얻으려면 'res/raw'폴더에 일부 이미지를 배치했습니다.

그러나 현재 방법이 효과가 있다면 사용해보십시오!

+0

내가 생각했던 것 그게 전부지만, 허구보다 낯선 (솔루션 위의) 트릭을하는 것처럼 보였습니다 :) – Stevanicus

관련 문제