2014-12-03 3 views
3

res/drawable 폴더 (drawable-hdpi, drawable-ldpi 등이 아닌 폴더)에 1280x720px 이미지가 있습니다. 하지만 런타임에 크기는 2560x1440px입니다. 이것이 어떻게 가능한지? 안드로이드는 드로어 블 폴더의 이미지 크기를 조정합니까?'drawable'폴더의 이미지는 자동으로 크기가 조정됩니까?

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.start_image_left); 
    int h = bitmap.getHeight(), w = bitmap.getWidth(); 

내가 모토로라 모토 G의 세대에이 테스트 해요 : 여기

는 코드입니다.

+1

스케일링을 보장 할 수있는 유일한 방법은 drawable-nodpi 폴더를 사용하는 것입니다. – zgc7009

+0

@ zgc7009 : '이미지로드 방법'은 무엇을 의미합니까? 나는 그것을 자원에 넣었고, 나중에 그것을 알아 낸다. 규모를 조정할 때 언제 필요합니까? –

+0

나는 내 전화로 질문을보고 귀하의 질문에 귀하의 코드를 보지 못했습니다. 뷰에로드하는 것으로 생각했는데, 스케일링이 발생합니다. 안드로이드는 드로어 블 폴더에서 이미지의 스케일을 조정할 것이지만 스케일링이 어떻게 처리되는지는 모르지만 스케일을 조정합니다. 스케일링을 보장하지 못하게하는 유일한 방법은 파일을 nodpi 자격있는 드로어 블 폴더에 저장하는 것입니다. – zgc7009

답변

7

처럼 검색 할 수 있습니다. 일반적으로 XML 드로어 블에만 사용되어야합니다. drawable 디렉토리의 비트 맵은 본질적으로 마치 drawable-mdpi (다른 밀도의 경우 비율에 맞게 조정 됨) 인 것처럼 처리됩니다.

모든 밀도에서 동일한 픽셀 크기의 비트 맵 이미지를 사용하려는 경우 drawable-nodpi에 입력해야합니다. 이로 인해 크기가 조정되지 않습니다.

+2

(그 이유는 무엇입니까?) 그리고 BitmapFactory.decodeResource를 사용하고 싶다면; BitmapFactory.Options # inScaled = false;를 사용하여 크기 조절을 비활성화 할 수도 있습니다. – Lovis

0

올바른지, Android는 현재 기기 구성에 따라 이미지를 자동으로 조정합니다. , 당신이 그 동작을 싶지 않는 그러나 경우 drawable 폴더에 넣어, 비트 맵 리소스 파일을 생성하고 중앙 중력, 안드로이드를 지정하여이

<bitmap xmlns:android="http://schemas.android.com/apk/res/android android:src="@drawable/yourDrawableHere" android:gravity="center" />

처럼 사용할 당김에 가리킬 수 있습니다 무엇이든간에 이미지의 크기를 조정하지 않습니다.

는 코드에서,이 비트 맵 리소스 파일을 사용하여 당신이 이제까지 루트 drawable 디렉토리에 비트 맵을 넣어해야 할 이유가 없잖아요이

Drawable drawable = getResources().getDrawable(R.drawable.yourBitmaoResourceFileName);

+0

당신은'drawable-nodpi' 폴더에 해킹을 사용하는 대신 – Lovis

+1

사실을 넣을 수 있습니다. 그렇습니다. 네 답은 위에서 말했기 때문에 다른 방법으로 문제를 해결하고 싶습니다. – Biu

관련 문제