我使用這個代碼讓我的屏幕分辨率:Android的錯屏幕尺寸
//View v
Context ctx = v.getContext();
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
,但我得到一個錯誤的屏幕尺寸:
06-03 05:25:47.861: I/Screen Size(5267): 1024x552
我的平板電腦擁有7" 屏幕,1024×600分辨率。我猜想缺少的48像素是系統欄使用的,但即使隱藏它,我得到的屏幕尺寸。
由於我在android 4.1.1我不能使用getRealSize()
方法添加API17。 如何獲得正確的屏幕尺寸?
更新:我的面板密度與1.0沒有不同,所以它不是重複的問題。大小應該是正確的。
更新2:下面的代碼工作(它只適用於13和16之間的API)。 它返回600x1024所以乾脆讓屏幕方向檢查,以獲得正確的寬度/高度
Method mGetRawW = Display.class.getMethod("getRawWidth");
Method mGetRawH = Display.class.getMethod("getRawHeight");
int nW = (Integer)mGetRawW.invoke(dp);
int nH = (Integer)mGetRawH.invoke(dp);
我把它從這裏:Android DisplayMetrics returns incorrect screen size in pixels on ICS
我也嘗試過度量標準仍然會得到錯誤的大小。 – Vektor88
我在這個問題上增加了另一個嘗試 – JRowan