Android布局可以缩放以填充屏幕吗?

时间:2013-09-30 13:16:34

标签: android android-layout android-widget

所以我有一个基于Android表单的应用程序,精美地填充7“屏幕,仅限肖像,并且有超过50种表单。而不是必须重新设计每个表单(或整个应用程序)以适应每个不同的分辨率,我的商业案例解决方案只是缩放表格以填满屏幕.10英寸平板电脑看起来有点间隔(但我可以添加一些边距),而在手机上你最好有手写笔和良好的视力!

不是争论这些是否是好的选择,我的问题是:它可以做到吗?在Windows CE上,表单通过“对话框单元”与文本大小进行缩放,这非常有效。 Android没有这样的东西,除非有使用'sp'单位的棘手方法。无论如何,在不同的分辨率上获得一个表格以很好地填充屏幕看起来像拔毛领域,除非我遗漏了一些东西。

在回答评论时,它是使用XML布局定义的本机应用程序。例如,您可以使用任何示例应用程序并显示如何将其缩放到不同的屏幕尺寸,因此如果屏幕较小,则无论分辨率如何都会得到微小的文本。

请注意:我不认为通过描述如何使用处理多种屏幕尺寸的标准Android方式来帮助回答这个问题:http://developer.android.com/guide/practices/screens_support.html。这是我这次不想做的事情。这真的是关于如何做其他事情 - 缩放以适应 - 当你真正需要它时。

3 个答案:

答案 0 :(得分:0)

我希望我能理解你的情况:

如果是Web应用程序(您正在使用webview),请使用视口标记:

<meta name="viewport" content="width=device-width;">

这将使页面内容适合设备屏幕。

或者,如果它是本机应用程序(也适用于Web应用程序),则可以在布局XML中为布局高度和宽度添加fill-parent。

答案 1 :(得分:0)

使用此代码:

Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();

要获取任何Android屏幕的高度和宽度,并使用此特定尺寸,请设置布局的比例。

例如,

RelativeLayout fieldMain = (RelativeLayout)findViewById(R.id.field_layout);

fieldMain.setLayoutParams(new RelativeLayout.LayoutParams((Int)(0.8*width), (int) (0.9*height)));

答案 2 :(得分:0)

如果我正确地得到了这个,你就会错过Android中最强大的一点,动态布局。例如,您可以对表单使用dp,为文本使用sp。的 Take a look at it