0

我的應用程序中圖像的正確視圖仍然存在問題。所以在我的第一臺設備上(密度爲5,2英寸,&),它看起來不錯。瞭解支持與圖像相關的不同屏幕尺寸

enter image description here

在第二設備(5,5英寸& 420密度)圖像不適合,它顯示了白邊。

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屏幕會縮小資源以適應佈局。

因此,我在可繪製文件夾中以最高分辨率ONCE實現了所有圖像。是否有必要將它們全部放在特定的文件夾中(drawable-ldpi,drawable-mdpi ...)?這意味着將有多個我的圖像副本,總是相同的大小。

是的,我讀了多次支持多個屏幕的官方文檔。但是我有一些理解它的問題。

+0

問題是,高寬比隨着不同的屏幕而變化。你需要你的形象始終填補空白。所以要麼使用不同的'scaleType'來填充它,要麼使用'gravity'作爲圖像視圖和它旁邊的佈局,所以寬度總是被填充。 – zed

+0

小心使用只有1大圖像,而不是切割到密度特定的大小,否則這可能發生在你身上http://stackoverflow.com/questions/28346407/bitmap-too-large-to-be-uploaded-進入紋理/ 28348286#28348286 – Budius

+0

像這樣的硬編碼大小也容易出錯。進一步瞭解如何使用'dimens.xml'文件 – Chisko

回答

0

我建議你使用layout_weight屬性來保持ImageView和問題佈局之間的恆定比例。 改變你的佈局是這樣的:

<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

謝謝,但我使用RelativeLayout,我無法使用layout_weight –

+0

是的,我明白了,但我不認爲將其更改爲LinearLayout將會很費力,因爲那裏沒有其他方式來設置XML中的比例。 –