WVGA854 스킨 및 240lcd 밀도 (Motorola Droid) 인 Android 2.0.1의 SD 카드에 저장된 480x320 JPEG 파일을 표시하려고합니다. 그러나Android 2.0.1에서 예기치 않은 크기의 비트 맵 드로이드 WVGA854
, I는 Drawable.createFromPath()를 통해 BitmapDrawable를 생성 할 때, 생성 BitmapDrawable 다음 값 가지고
mBitmapWidth = 320
mBitmapHeight = 213
mTargetDensity = 160
을매니페스트는 다음 구성을 포함합니다.
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
anyDensity="true"
/>
분명히 안드로이드가 비트 맵의 크기를 조정하고 있습니다. 이 문제의 원인은 무엇일까요? 어떻게 피할 수 있습니까?
미리 감사드립니다.
인터넷 검색을 통해 안드로이드의 후자 버전에서 BitmapFactory가 화면 밀도에 따라 비트 맵을 조정한다는 것을 알았습니다. Drawable.createFromPath()는 구현시 BitmapFactory를 사용하는 편리한 메서드입니다. 이 스케일링을 끄려면 BitmapFactory 옵션이있는 것 같지만 (inScaled = false) API 레벨은 4입니다. 해결책은 더 낮은 API 레벨에서 리플렉션이 작동해야 할 수도 있습니다. 이 문제가 해결되면 더 많은 실험을하고 답변을 게시 할 것입니다. – hpique