【问题标题】:Application to support multiple screen resolutions支持多种屏幕分辨率的应用程序
【发布时间】:2012-11-06 06:48:49
【问题描述】:

我的项目中有 3 个布局文件夹:

1.布局

2。布局大

3.小布局

到目前为止,我在 layout-small 中没有任何内容,但 layout 具有小尺寸的布局,而 layout-large 具有大尺寸布局。

问题是:

当我在 240x320 上测试我的应用时,它使用来自 layout

的布局

当我在 480x800 上测试我的应用时,即使现在它也使用来自 layout

的布局

是不是因为我有 layout-large, 480x800 不属于大屏幕,因此使用默认的 layout 文件夹?

如果是这样,我如何为 普通屏幕 制作布局,没有像 layout-normallayout-medium 这样的东西。

此外,如果我为 HVGA (320x480) 设计布局,它应该适用于 WVGA800 (480x800),因为它们都属于相同的屏幕尺寸,只有密度变化.我到处都在使用 dp。我说的对吗?

任何帮助表示赞赏。

【问题讨论】:

标签: android android-layout screen


【解决方案1】:

当涉及到 xlarge、large 和 small 时,它取决于 size(英寸)而不是您设备的 dpi 规格见下文

另外,DPI 主要用于 Drawables,而 SIZE 用于布局。

【讨论】:

  • 具体来说。 1 我面临的主要问题是:我的图像宽度必须为 Match_parent,高度必须为 父级的一半。所以在布局中我将使用 width = match_parent 的 9-patch,但是如何在此处设置高度?考虑到 HVGA (320x480) 可能设置不正确 height = 160dp 这不适用于 WVGA800 (480x800)
  • 不,您应该使用 LinearLayout 作为基础,并在子工作中使用 Weight 属性。
  • 哇。因此,如果我必须支持所有屏幕尺寸,则每个布局都必须仅使用具有适当权重的 LinearLayout?到目前为止我使用的是RelativeLayouts,如果我必须将它们更改为LinearLayouts,它将是代码的三倍:(
  • 不,这取决于。您需要决定何时使用相对/线性,但当您按比例分配控制区域时,线性效果很好。不要改变简单的创建一个示例项目并学习LinearLayout你一定会知道什么时候使用它。
【解决方案2】:

只需使用以下详细信息,它可能会起作用,但我不确定..

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

试试吧....

【讨论】:

  • 还有什么正常的吗?? 布局正常 ??
  • 类型布局总是布局正常
【解决方案3】:

您应该查看这个开发者页面,它对我有很大帮助。 http://developer.android.com/guide/practices/screens_support.html

即使它们具有不同的分辨率或屏幕尺寸,也并不意味着它们具有不同的像素密度。例如,大屏幕的像素密度可能低于小屏幕。

另一个例子是三星 Galaxy 标签,它是 10.1 英寸,但仍然是 mdpi-large 和 Nexus One,它小于 5 英寸,但使用 hdpi。

祝你好运

【讨论】:

    【解决方案4】:

    我想我知道你怎么了........让我们试试这个。 假设您要使应用程序兼容 480x800 分辨率。因此首先为它创建两个文件夹,即

    1.layout-sw480dp 这是横向的。

    2.layout-sw480dp-port 用于纵向模式。

    现在,把480X800分辨率的所有布局都放进去。你看它在特定的分辨率下很容易运行。

    注意:- 这里要注意的是,对于任何设备分辨率,让 A X B。布局文件夹的名称是这样的。

    1.layout-swAdp。

    2.layout-swAdp-端口。

    这里的“A”是设备的屏幕分辨率高度值。

    我希望它对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多