【发布时间】:2012-01-09 06:21:49
【问题描述】:
请正确地让我过来:
我想在 onCreate() 方法中获取 Activity/Layout 可用空间的高度/宽度,以计算可以给子布局的高度。我可以使用以下方法获取屏幕尺寸:
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%)。
【问题讨论】:
标签: android screen android-linearlayout dimensions