2011-03-05 43 views
0

我的應用程序中有一個窗口(包含一些基於窗口大小通過javascript調整大小的元素)。當我運行沒有目標SDK的應用程序時,所有內容都完美無缺。結果來自:獲取與未指定SDK時相同的窗口度量值

getWindowManager().getDefaultDisplay().getMetrics(dm); 
x = dm.widthPixels; 
y = dm.heightPixels; 

...與我以4+的目標sdk運行應用程序時截然不同。

當我運行應用程序時沒有目標sdk的大小使我的webview工作中元素的大小調整成爲可能,但getMetrics()報告窗口明顯小於它的大小。 (我最終得到了一個填充窗口的webview,但是我所有的元素都在左上角坍塌)。

如何在指定目標sdk時獲得全視圖大小,爲什麼是數字太不同了?

回答

0

要回答我的問題:

當沒有指定目標的SDK,Android的呈現在仿真模式的窗口和自動調整屏幕密度。當指定目標時,窗口管理器報告與密度無關的像素,因此您可以獲得不針對設備分辨率縮放的測量值。要獲得實際的像素尺寸,您可以這樣做:

getWindowManager().getDefaultDisplay().getMetrics(dm); 
    density = dm.densityDpi; 
    x = (int) dm.widthPixels * 160/density; 
    y = (int) dm.heightPixels * 160/density;