2012-11-18 58 views
4

我目前正在开发我的应用程序,以兼容银河注2和即将推出的银河s3引入的三星多窗口功能。如果你不知道我说的是: http://androidheadlines.com/wp-content/uploads/2012/10/multiwindow.jpg
如果你有兴趣,这里是一个链接了解如何做到这一点: here三星的多窗口支持 - 屏幕尺寸

我的问题是,我需要知道的高度/宽度我的应用程序使用。 我这样做:

displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
heightScreen = displaymetrics.heightPixels; 
widthScreen = displaymetrics.widthPixels; 

但这返回整个屏幕的大小,不只是我的应用程序使用的部分。我的活动只由占用整个空间的面板构成,但panel.getHeight()或getWidth()返回0.

如何获得真实的高度/宽度?

在此先感谢。

回答

6

我的活动仅由拍摄整个空间中的面板panel.getHeight()或的getWidth()组成,但返回0

尝试以后检查。您可能正在检查onCreate(),这是太快了。

+0

是的,你是对的。我现在用onDraw方法做,它很酷。当用户调整我可以意识到的窗口大小时。 –

+0

Stephane - 您能否告诉我们您的解决方案到底如何看待? –

+0

在调用“public void onWindowFocusChanged(boolean hasFocus)'方法之前,窗口小部件实际上并未”绘制“并且能够报告它们的大小。您可以覆盖它并获取指标(对于未来寻找解决方案的Google员工)。 – spartygw