2012-04-30 73 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提到的回退。