2012-04-30 108 views
2

的2/3我用displaymetrics來獲得設備的屏幕大小。在智能手機中它的效果很好,但在平板電腦中,它會返回2/3的屏幕寬度和高度。誰能告訴我爲什麼?安卓displaymetrics返回屏幕尺寸

是這樣的代碼:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int screenheight = metrics.heightPixels; 
int screenwidth= metrics.widthPixels; 

回答

0

你是不是由密度縮放。

試試這個:

int screenHeight = metrics.heightPixels * getResources().getDisplayMetrics().density; 
int screenWidth = metrics.widthPixels * getResources().getDisplayMetrics().density; 

而且

(WindowManager) context.getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth(); 
1

嘗試getRealMetrics()代替:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getRealMetrics(metrics); 

此API在API 17日正式加入,但在我有限的測試它的工作正常即使在4.0設備上,所以它可能在此之前是一個隱藏的API。

正式文件here,但似乎有更多的理由,其他API不會做你期望比也就意味着文本內容。

如果存在此API無法工作的ICS設備,那麼您也可以嘗試使用here提到的回退。