以编程方式设置布局宽度和高度,基于屏幕尺寸Android

时间:2015-01-15 04:58:45

标签: java android performance android-layout

当我的屏幕从layout更改为portrait模式时,我的landscape出现问题。

我正面临的问题

我有一个SquareLayout widget,它扩展了LinearLayout,这有助于我制作一个完美的正方形,并且正如我在portrait中所希望的那样正常工作模式,但是如果我将orientation更改为landscape,则广场将会很小,我希望能够在Landscape模式下获得相同的尺寸,并且我会有{{{ 1}}帮助高度。

1)如何获取屏幕大小并以此为基础设置scrollView layoutwidth以编程方式。

2)如果我可以在height模式下获得正方形的大小并将其传递到我的portrait方格,那么我认为landscape会很好,如果我设置width用户可以scrollView为全高。

我更关心这个的原因是因为Android设备的屏幕尺寸,这就是为什么我想知道屏幕的大小,并根据设置的宽度和高度。 < / p>

3 个答案:

答案 0 :(得分:1)

您可以按照上面的建议以编程方式执行,或者您可以为布局创建一个名为layout-land的新文件夹,然后创建您想要的横向布局,然后在设备时自动更改为新布局翻了。

可以在此处找到更多信息:http://developer.android.com/training/basics/supporting-devices/screens.html

答案 1 :(得分:0)

从活动中:

int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();

来自您具有活动背景的非活动类

WindowManager windowManager = (WindowManager)mContext.getSystemService(WINDOW_SERVICE);
int width = windowManager.getDefaultDisplay().getWidth();
int height = windowManager.getDefaultDisplay().getHeight()

答案 2 :(得分:0)

根据w9jds 的建议: 如果您需要横向布局与纵向布局不同,则需要在layout-land文件夹中创建res文件夹。现在,您可以为同一屏幕制作两个不同的xml文件w.r.t方向。只需确保它们都具有相同的名称。使用ScrollView创建横向,使用ScrollView创建纵向。对于两种布局,以相同的方式计算正方形的宽度和高度。

有关Android中多个布局的更多信息,请阅读this文章。