2012-07-23 80 views
1

平板電腦和一些運行4.0的手機在屏幕控制上。我正在開發一個全屏的基於畫布的遊戲。我調整我的畫布以適應屏幕尺寸和矩陣。平板電腦 - 獲取可繪製屏幕分辨率,不是總屏幕分辨率

在任何具有屏幕按鈕的設備上,我的應用程序當前會在這些按鈕下繪製部分遊戲控件。

有沒有辦法確定可繪製的屏幕分辨率,IE的分辨率減去任何屏幕上的按鈕?

編輯:

這是我測試的

Display display = ((Activity) gameContext).getWindowManager().getDefaultDisplay(); 

Log.d("Display.getWidth(): ", Integer.toString(display.getWidth())); 
Log.d("Display.getHeight(): ", Integer.toString(display.getHeight())); 

DisplayMetrics metrics = new DisplayMetrics(); 
((Activity) gameContext).getWindowManager().getDefaultDisplay().getMetrics(metrics); 

Log.d("Metrics.getWidth(): ", Integer.toString(metrics.widthPixels)); 
Log.d("Metrics.getHeight(): ", Integer.toString(metrics.heightPixels)); 
+0

https://groups.google.com/group/android-developers/msg/4e87f16dd02f3209 – CommonsWare 2012-07-23 21:51:59

回答

0

中使用Android DisplayMetrics類解析的方式。它返回的數據是應用程序可用的區域,不包括屏幕上的控件等等。

+0

現在我正在使用:'Display display =((Activity)context).getWindowManager()。getDefaultDisplay();'然後'display.getWidth()'和'display.getHeight()'你提供的東西的文檔看起來像返回相同的信息。它沒有提到圍繞ActionBar工作。 – 2012-07-23 21:22:13

+0

這些是正確的價值觀。事實上,你會發現,與自己的直覺相反,獲得全屏大小(硬件像素的數量與查詢結果中的像素數相匹配)有點困難。你想要的東西很容易。 – Argyle 2012-07-23 23:52:46

+0

在仿真器display.XXX上使用3.2進行測試。在3.0上,度量和顯示對象都返回相同的信息。我已經把上面使用的實際邏輯。 – 2012-07-24 15:22:24