不同Android產品的所有不同分辨率都讓我非常吃驚。如何支持Android產品的所有不同分辨率
我寫的第一個android應用程序是爲支持三種常用分辨率而設計的:240x320(LDPI),320x480(MDPI)和480x800(HDPI)。 480x854對佈局沒有任何損害,因爲它與480x800的寬度相同。
我也購買了如下設備來測試我的Android應用: 三星Galaxy歐洲(LDPI) 的HTC Desire Z(華電國際)
幸運的是我的女朋友有一個HTC野火S(MDPI),所以我已經得到了大部分決議。
但今天,我的兄弟下載了我的應用程序在他的新的HTC Sensation,它還有另一個分辨率540x960(HDPI?)。哪些應用程序沒有顯示我的應用程序,可能大多數平板電腦也無法正確顯示它。
我已經做了我的第一個應用程序被讀出的密度,然後設置參數:
public void set_ui_parameters() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if(metrics.densityDpi == DisplayMetrics.DENSITY_HIGH){
textSize = 35;
timeWidth = 80;
dayWidth = 110;
moneyWidth = 50;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM){
textSize = 35;
timeWidth = 53;
dayWidth = 73;
moneyWidth = 33;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_LOW){
textSize = 28;
timeWidth = 40;
dayWidth = 55;
moneyWidth = 25;
}
}
而且我也創造了LDPI,MDPI和HDPI可繪製的參數。這適用於上述解決方案,但這取決於屏幕分辨率i.c.w.屏幕尺寸和失敗,例如與540x960的HTC sensatoin。
我知道並非所有的決議都經常使用,但我想盡可能地支持。 Stats of Screen Sizes and Densities
我讀了Supporting Multiple Screens多次,但沒有找到明確的答案,這個「問題」。
所以我應該讀出分辨率並根據分辨率而不是密度設置參數?這是一件明智的事情,或者你如何處理這件事?
非常感謝您的信息!
由於這些值非常有用,但這並不能解決540x960分辨率的問題,或者我錯了。由於SQRT(540^2 + 960^2)/4.3=256,15(HTC Sensation)與SQRT(480^2 + 800^2)/3.7=252,15(HTC Desire Z)大致相同並且都將被索引爲HDPI,其中Sensation的屏幕寬度爲60px。 – patrick
是啊...這裏的問題是,你將無法處理100%的屏幕尺寸。所以,舉例來說,如果你想要一個文本視圖來精確覆蓋屏幕的寬度,即使你應用了所有可能的技術,也會有一些設備將包裝文本或其他東西。我的觀點是,你不能讓你的應用在所有設備上看起來完全一樣,你必須遵守使它看起來更好。 – Cristian