2012-12-26 2 views
1

dpi 프로필로 android scales 비트 맵이 올바르지 않은 것처럼 보입니다.ImageView를 조정하는 올바른 방법

<ImageView 
    android:src="@drawable/background" 
    android:layout_width="320dp" 
    android:layout_height="533dp" /> 
hdpi에에서

(240 또는 150)에 화상 480X800 올바르게 저울 :

예를 들어 I은 320x533 화상이, 즉 같은 한정된 화면 전체 영역을 커버하는 것을 의미 . 그러나 xhdpi (320 또는 2.0)에서는 그렇지 않습니다! 즉, 이미지가 640x1066이되고 있지만, 실제 전화 지역 720x1280 또는 1080x1920 또는 기타 유사한 해상도 될 수 있습니다.

ImageView.scaleType (모든 옵션)을 조정하려했지만 여전히 이미지의 크기가 올바르게 조정되지 않았습니다. 이 문제를 해결하는 올바른 방법은 무엇이라고 생각합니까? ImageView를 서브 클래스 화하고 Java로 스케일링을 처리해야합니까? 아니면 뭔가 근본적으로 부족합니까?

답변

2

은 "나는 이미지 뷰를 서브 클래스와 자바 스케일링 처리해야"당신이 DPI 값을 얻을 수 있습니다 NO

을 당신은 너무 해상도 값을 얻을 수 있습니다. 원하는 픽셀 수를 계산할 수 있습니다.

옵션 2는 android dpi를 기반으로 다른 디렉토리를 사용합니다. (drawable뿐만 아니라, Google 검색은 정확히 어떻게 알려줄 것입니다)

+0

그러나 실제 비율이 다른 반면 안드로이드는 항상 xhdpi에서 * 2.0을 조정합니다. 720px/320px = 2.25 및 1080px/320px = 3.375. 각기 다른 해상도에 대해 다른 사전 크기 조정 된 이미지를 만들 것을 제안합니까? – Dimitris

+0

android : layout_width = "320dp" android : layout_height = "533dp"는 코드에서 재정의 할 수 있습니다. 계속 진행하는 방법에 대해 다음과 같이 말하면됩니다. http://developer.android.com/guide/practices/screens_support.html 및 http://developer.android.com/training/multiscreen/screendensities.html –

+0

글을 읽었습니다. 그들은 내 문제에 대한 답을 제공하지 않습니다. 첫 번째 링크에는 두 가지 제안 사항이 있습니다. 1) 다양한 화면 크기 (/ res/layout-xyz)에 대해 다른 레이아웃을 제공하십시오. 2) 서로 다른 화면 밀도 (/ res/drawable-xyz)에 대해 서로 다른 비트 맵 드로어 블을 제공합니다. 나는 (1)을 사용하여 다른 크기의 레이아웃 xml을 조정할 수 있지만, 그것은 많은 작업과 벙어리 IMO의 종류이다. 내가 필요한 것은 사전 정의 된 값 대신 실제 화면 해상도에서 동적으로 평가 된 비율에 대한 비율 조정입니다. – Dimitris

관련 문제