2013-05-08 74 views
1

我試圖在我當前的應用程序上支持mdpi,hdpi和xhdpi。問題是我從網上抓取圖片(配置文件圖片)。我正在使用height = 200dp的imageview,事情是,即使我已經閱讀了大量有關dp和dpi的教程和文檔,但我仍然沒有得到它們。從網絡的Android圖像大小

所以我的問題是,在hdpi手機上(ATRIX 2)圖片後在屏幕上,這是非常適合我的約1/3。但在mdpi(銀河王牌),它需要近2/3。

什麼是設置高度爲ImageView的(來自網絡,而不是資源),以支持MDPI和華電國際的最佳途徑。

感謝

<ImageView 
    android:id="@+id/expositor_image" 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    android:layout_below="@+id/expositor_info_header" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="-27dp" 
    android:contentDescription="@string/misc_placeholder" 
    android:scaleType="centerCrop" /> 

基本上我的問題是,200dp需要屏幕的不同%的MDPI和HDPI

回答

0

首先,你會想設置一個scaleType(嘗試「center_inside」)在ImageView的xml定義中。

如果你提供了一些代碼(特別是你的佈局xml文件),我可能會有更多的幫助。

更新

現在,這可能不完全是你的問題,但它是一塊吧。 DP(或DPI,它們是相同的東西)調整屏幕密度(像素每英寸),而不是屏幕尺寸。這意味着200dp x 200dp的圖像在兩個屏幕上的英寸大小几乎相同,而不是屏幕的百分比。

規格: 的Atrix 960×540(https://en.wikipedia.org/wiki/Motorola_Atrix_2#Features) 銀河王牌480×320(https://en.wikipedia.org/wiki/Samsung_Galaxy_Ace

由於Atrix的是hdpi的,並且hdpi的是1.5乘法器,200dp會佔用300像素在實像素,或大約是您指出的1/3(300/960)的屏幕。

在mdpi Ace上,200dp平均轉換爲200px,應該接近1/2的屏幕。但是,隨着屏幕房地產的增加,看起來可能更多。

對付像王牌非常小屏幕的最佳方式......嗯,我正常的解決方案是不支持他們很好,至少不是我的第一關,因爲他們是非常罕見的。但如果你想,最好的辦法是提供備用佈局。

例如:

創建名爲佈局大文件夾(或類似的,參見:http://developer.android.com/guide/topics/resources/providing-resources.html#Compatibility)。

在該文件夾中複製現有的xml文件。 (名稱必須完全相同)

修改layout /中的文件,使其在較小的屏幕上更好地工作。

本質上,如果該裝置具有一個「大」上面的屏幕或(其中,大基本上是標準的這些天),它會在佈局大/文件夾使用的佈局。

否則,它將使用佈局/文件夾中的默認佈局。

如果您認爲此解釋不是正在發生的情況,請提供屏幕截圖以驗證佈局實際上並不像應該那樣。

+0

那裏。我編輯並添加了代碼 – 2013-05-08 19:46:57