2013-06-04 81 views
3

這個DP測量很混亂,我試圖學習什麼時候應該使用wrap_content,何時應該在使用ImageView時設置高度。包裝內容vs設置dp

我目前的問題是,我在3張圖片上使用換行內容(是的,我爲每個屏幕尺寸使用不同的資源:mdpi,hdpi,xhdpi),但是在某些設備(包括hdpi)中,因爲它們具有不同的寬度像素大小(一個爲480px,另一個爲590px),在480px的一箇中,其中一個圖像看起來更小,因爲它們的大小是wrap_content的計算原因。

我可以讓我的設計師重新制作hdpi大小的所有圖像,但我想知道何時使用wrap_content以及何時自己設置DP尺寸。

+1

我不知道如何回答你的問題,實際上和我的一樣。我所做的避免這種大小不同的問題是使用不同的資源,並將寬度和高度設置爲與mdpi資源相同,這樣可以在不同的屏幕尺寸下正常工作。 –

+0

因此,我最好基於mdpi進行設計,然後將每個圖像大小乘以1.75和2.00?如果是的話,那將是...在Photoshop上的320×480的畫布大小? –

回答

2

DP僅僅是一個計量單位是歸爲不同的屏幕像素密度,這意味着像50dp的值總是具有相同的物理大小不管你運行什麼設備你的應用程序。

就實際設計佈局而言,您應該幾乎總是使用wrap_contentmatch_parent而不是設置寬度和高度的硬編號。例外情況通常出現在爲LinearLayout的子女使用layout_weight做比例尺寸或爲RelativeLayout的孩子使用各種佈局錨時。

+0

如何從URL中提取圖像,我想在這種情況下,我必須在DP中設置自己的寬度和高度,對不對? –

+0

你可以;我傾向於不喜歡這樣的解決方案,但這取決於您的需求。如果您擔心圖像被縮放,您可以在ImageView上設置縮放類型,或者可以擴展ImageView並嘗試自己處理這些問題。 – Karakuri

+0

我平時關心的不是比例類型,而是圖像的實際比例,所以它不會覆蓋mdpi上的整個屏幕,並且在xhdpi上太小;並且因爲它們是從URL中獲取的,所以我無法爲每個屏幕密度真正地創建1個圖像 –