0

私のアプリケーションの画像の正しい表示には依然として問題があります。だから私の最初のデバイス(5,2インチ& 480密度)でそれはよく見えます。第二の装置(5,5インチ& 420密度)で画像に関連するさまざまな画面サイズを理解する

enter image description here

画像が収まらないと、それは白い境界線を示しています。

enter image description here

これは私のレイアウトでImageViewのです:

<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" /> 

私はAndroid Blogでこれを読んだ後、描画可能フォルダ内のすべての私のイメージを置い:

を一般的に2がありますすべての画面DPIをターゲットにする方法。 1.最も簡単な方法 - すべての画像を超高または超高DPIにします。

デバイスがドロアブルDPIと一致しない場合、Androidはドロアブルを自動スケールします。唯一のドロアブルが高密度で作成されている場合は、低いDPI画面でレイアウトに収まるようにリソースをダウンスケールします。

私はすべてのイメージを可能な限り1つの解像度で描画可能なフォルダに実装しました。特定のフォルダにすべてを配置する必要がありますか(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の比率を設定する他の方法はありません。 –

関連する問題