0

내 애플리케이션의 이미지에 대한 올바른보기에 여전히 문제가 있습니다. 그래서 내 첫 번째 장치 (5,2 인치 & 480 밀도)에 좋을 것 같습니다. 제 2 장치에서 이미지와 관련된 다양한 화면 크기 이해 이해

enter image description here

(5,5 인치 & 밀도 420) 이미지는 적합하지 않으며 흰색 테두리를 나타낸다. Android Blog

<ImageView 
    android:id="@+id/iv_image" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_below="@id/tv_topic" /> 

내가 이걸 읽은 후 당김 폴더 내 모든 이미지를 배치 :

일반적으로 두 가지가 있습니다

enter image description here

내 레이아웃에서 이미지 뷰입니다 모든 화면 DPI를 타겟팅하는 방법 1. 가장 쉬운 방법 - 모든 이미지를 초고속 또는 초고속 DPI로 만듭니다.

기기가 드로어 블 DPI와 일치하지 않는 경우 Android에서 드로어 블을 자동으로 조정합니다. 유일한 드로어 블이 고밀도로 생성되는 경우, 더 낮은 DPI 스크린은 리소스를 레이아웃에 맞게 다운 스케일합니다.

그래서 드로어 블 폴더에서 최대한 높은 해상도로 모든 이미지를 구현했습니다. 특정 폴더 (drawable-ldpi, drawable-mdpi ...)에 모두 배치해야합니까? 내 이미지의 사본이 항상 같은 크기로 여러 개있을 것입니다.

그리고 여러 스크린을 지원하는 공식 문서를 몇 번 읽었습니다. 그러나 나는 그것을 이해하는 몇 가지 문제가 있습니다.

+0

문제는 화면마다 높이 : 너비가 변경된다는 것입니다. 항상 공간을 채우려면 이미지가 필요합니다. 따라서 서로 다른 'scaleType'을 사용하여 채우거나 이미지 뷰와 레이아웃 옆에 'gravity'를 사용하여 너비가 항상 채워지도록하십시오. – zed

+0

밀도 특정 크기로 자르는 대신 1 개의 큰 이미지 만 사용하십시오. 그렇지 않으면이 문제가 발생할 수 있습니다. http://stackoverflow.com/questions/28346407/bitmap-to-large-to-be-uploaded- into-a-texture/28348286 # 28348286 – Budius

+0

이와 같은 하드 코딩 크기도 오류가 발생하기 쉽습니다. 'dimens.xml' 파일 사용에 대해 더 궁금합니다 – Chisko

답변

0

ImageView와 질문 레이아웃 간의 일정 비율을 유지하기 위해 layout_weight 속성을 사용하는 것이 좋습니다. 레이아웃을 다음과 같이 변경하십시오.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="4"> 
    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical"> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
     <ImageView 
      android:id="@+id/iv_image" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="3" /> 
</LinearLayout> 
+0

고맙겠 습니다만, layout_weight를 사용할 수없는 RelativeLayout을 사용하고 있습니다. –

+0

예, 이해합니다. 그러나 LinearLayout으로 바꾸려면 많은 노력이 필요하다고 생각하지 않습니다. XML에서 비율을 설정하는 다른 방법은 없습니다. –