【问题标题】:How to have different layouts for same size category devices?如何为相同尺寸类别的设备提供不同的布局?
【发布时间】:2013-07-14 13:11:02
【问题描述】:

我有 3 台设备

1) galaxy nexus 720*1280xhdpi,正常尺寸类别)

2) 摩托罗拉 480*854hdpi,正常尺寸类别)

3) htc 320*480mdpi,正常尺寸类别)

我的布局文件夹中有我的 xml。在我的 xmls 中,我需要修复我的 textviews 的大小,Edittext(它将随着文本的输入而扩展)。

因此,我的 motorolo、htc 设备出现问题。我无法准备不同的布局,因为这 3 个设备属于 layout-normal(layout)。

我在矩形背景中有文本视图,随着文本的增加,矩形框正在扩大。

是否有任何选项可以为每个设备准备不同的布局。

请推荐

谢谢

【问题讨论】:

  • 分辨率影响图片资源而不是布局。物理屏幕尺寸会影响布局。
  • 我需要修复我的文本视图,Editext 大小,因为如果我们继续输入文本,它们会扩大。所以我需要修复这个值。我该如何解决这个问题?
  • 使用fill_parent, match_parent 作为高度/宽度。或者使用0dp 作为高度/宽度,layout-weight0.01.0
  • 我有一个带背景的 EditText,如果我给 wrap_content 并继续添加文本,这会扩展,所以我已经修复了这个宽度

标签: android


【解决方案1】:

您可以使用 layout-mdpilayout-hdpilayout-xhdpi 等布局文件夹来定位密度。你为什么想做这个?对任何事情都使用 dips 就可以了。

编辑:基于您提供的 cmets 的建议:

通过使用像 200dp 这样的值,所有设备上的框都有相同的大小。不是像素,而是屏幕上的实际大小。这就是 dips(dp 单位)的用途。

屏幕在不同尺寸的设备上看起来应该是一样的。阅读http://developer.android.com/guide/practices/screens_support.html 上的描述,尤其是名为“密度独立”的部分。

读完之后,如果你仍然真的,我强烈建议你不要这样做,希望它们在不同的屏幕尺寸上看起来不同,这样做。

  1. 在您的布局 xml 中将宽度定义为 android:layout_width="@dimen/the_width"

  2. 在文件夹 values 中,创建文件 values.xml。在那里定义一个像<dimen name="the_width">200dp</dimen> 这样的维度。 200dp 是一个示例,将是默认值。

  3. 在 values-hdpi、values-xhdpi 和/或 values-mdpi 文件夹中覆盖此值,方法是创建相同的 values.xml,但为 the_width 使用不同的值。

    李>

这将使编辑文本在不同的屏幕尺寸上具有不同的尺寸。

【讨论】:

  • 不,我有类似矩形框的背景,里面会有一个文本,如果我有一个固定大小的 1 行文本,那么当涉及到 motorolo,htc 时,这个背景正在扩大.
  • 你能添加一些截图来说明你的意思吗?我很难在没有看到的情况下理解这一点。你也可以把你现在使用的layout.xml贴出来吗?
  • 当然,给我一些时间,请试着用我的话来理解。我有一个带有背景的 EditText,如果我给出 wrap_content 并继续添加文本,这将扩展,所以我已经修复了这个宽度
  • 如果你只是将 layout_width 设置为 200dp 会发生什么?它应该在所有设备上看起来都一样。您还可以在 values.xml <dimen name="your_name">200dp</dimen> 中将此变量定义为维度资源。并且只为每个设备更改它。这样你就不需要单独的布局,它变得更容易管理。
  • 如果我将 200dp 设置为宽度,它在我上面提到的 hdpi、mdpi 设备中看起来很大。那么如何为所有这三个设备设置此宽度
猜你喜欢
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
相关资源
最近更新 更多