在我的應用程序中,對於相對佈局的背景,我有一個非常大的網格壁紙(比任何手機/桌面屏幕都大)。所以,我想知道,而不是讓android調整它,讓它看起來很糟糕,我可以自己調整它。我想要做的是調整圖像大小(垂直和水平方向),直到圖像和屏幕的高度相匹配。Android-重新調整圖像以匹配屏幕的高度
感謝所有幫助appreciated- Lijap
在我的應用程序中,對於相對佈局的背景,我有一個非常大的網格壁紙(比任何手機/桌面屏幕都大)。所以,我想知道,而不是讓android調整它,讓它看起來很糟糕,我可以自己調整它。我想要做的是調整圖像大小(垂直和水平方向),直到圖像和屏幕的高度相匹配。Android-重新調整圖像以匹配屏幕的高度
感謝所有幫助appreciated- Lijap
這個問題的解決是什麼谷歌已經投入了非常大量的精力。
基本上,您應該爲每個目標尺寸/佈局創建不同的尺寸。
這已在Google Dev Guide documents for Supporting Multiple Screens
廣泛的解釋(好多比我能給)在這個頁面:
屏幕尺寸
實際物理尺寸,在屏幕的對角線測量。 爲簡單起見,Android會將所有實際屏幕尺寸分爲四種廣義尺寸:小尺寸,普通尺寸,大尺寸和超大尺寸。
屏幕密度
屏幕的物理區域內的像素的數量;通常稱爲dpi(每英寸點數)。
例如,與「正常」或「高」密度屏幕相比,「低」密度屏幕在給定物理區域內具有更少的像素。 爲了簡單起見,Android將所有實際屏幕密度分爲四種廣義密度:低,中,高和超高。
方向
但從用戶的角度,屏幕的方向。這是橫向或縱向,這意味着屏幕的寬高比分別爲寬或高。請注意,不同的設備默認情況下在不同的方向上運行,但是當用戶旋轉設備時,方向會在運行時更改。
分辨率
在屏幕上的物理像素的總數。當添加對多個屏幕的支持時,應用程序不會直接使用解決方案;應用程序應僅關注屏幕大小和密度,如廣義大小和密度組所指定。
密度獨立像素(DP)
定義UI佈局時,你應該使用來表達佈局尺寸或位置的密度無關的方式的虛擬像素。 與密度無關的像素相當於160 dpi屏幕上的一個物理像素,這是系統爲「中等」密度屏幕假設的基準密度。在運行時,系統根據使用的屏幕的實際密度,根據需要透明地處理dp單位的任何縮放比例。將dp單位轉換爲屏幕像素很簡單:px = dp *(dpi/160)。例如,在240 dpi屏幕上,1 dp等於1.5個物理像素。定義應用程序的用戶界面時,應始終使用dp單位,以確保在不同密度的屏幕上正確顯示您的用戶界面。
這樣,您的用戶將會看到與他們的設備大小相匹配的位圖。
如果您需要幫助理解文檔,或者如果這不能正確回答您的問題,請讓我知道。
Pheonixblade9的答案是正確的,但如果您決定自己做一些調整大小,那麼您可以實施onSizeChanged() method of the ImageView class。但請注意onSizeChanged()
方法來自Super-Class,View。
如果圖像太大(特別是如果它比任何分辨率都大),則可能會出現OOM(內存不足)錯誤。
在這種情況下,您必須提高內存效率,並且Google已經發布了一些關於此問題的教程。
見:http://developer.android.com/training/displaying-bitmaps/index.html
使用imgview.setScaleType(ScaleType.FIT_XY); –