请正确地让我在这里:安卓:获取屏幕尺寸为根布局仅
我想获得可用的高度/空间的宽度与活动/布局onCreate()方法来计算高度可以给予儿童布局。我可以使用以下屏幕大小:
root = (LinearLayout) findViewById(R.id.mainroot); // Main layout of LinearLayout
android.view.Display display = getWindowManager().getDefaultDisplay();
int height = Display.getHeight(); // I know this is deprecated have hence used
int width = Display.getWidth(); // DisplayMetrics
int childWidth, childHeight;
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
//int density = metrics.densityDpi;
height = metrics.heightPixels; //480
width = metrics.widthPixels; //320
这两种方法/方式都给我相同的高度和宽度,即全屏大小。我正在寻找的是获得实际的高度,这是在扣除应用标题,状态栏等之后的布局。
任何想法如何得到这个。或者获得标题的大小等 - 这里应该统计所有的东西。在模拟器上,我看到顶部有2个条 - 1必须是应用程序标题什么是另一个。我可以获得所有的高度,并从屏幕高度中扣除。
还有一点:在这种情况下,我将按照程序设置高度,因此它将以像素为基础(因为我只能以像素为单位设置像素高度)会影响密度因子,屏幕大小不同。什么可以是一种方式来计算高度(让说50%)的儿童布局,将任何密度相同的所以。
我不认为用户可以在运行时更改设备密度,但在3.2中引入了兼容模式后,我不确定这会对它造成怎样的影响。至于你的测量,如果你真的不需要“状态栏”和“标题栏”的大小,但只真的需要你的意见的可用大小,那么你为什么不在你的运行()方法:'run(){sRootHeight = root.getHeight(); }'sRootHeight'是一个静态类变量,所以你的其他活动可以引用它。 – 2012-02-03 02:00:00
@Turbo,我实际上有两排3个按钮。基于可用空间,我计算按钮的高度和宽度,考虑它们之间的空间。我在XML中添加了两行,每行3个按钮,root.getHeight();给我的标准尺寸的按钮。如果屏幕处于portriat模式,则在横向模式下,高度大于宽度,反之亦然。基于可用的高度,我可以设置按钮的高度。如果在3.2版中兼容性moe可能会受到一定程度的影响,那么在更高版本中,它也可能完全可用。你说什么 ?? – Tvd 2012-02-03 05:53:56
我还没有玩兼容模式,所以我不太熟悉它的影响。但是使用获取视图高度的root.post()方法是非常安全的,因为无论屏幕大小如何,您都可以在运行时计算所需的空间。如果你担心兼容模式[这里是你如何禁用它](http://developer.android.com/guide/practices/screen-compat-mode.html#Disable) – 2012-02-11 09:18:22