4

我知道有很多关于在 Android 中设计多屏支持的文档。我已经阅读了这里的 Android 指南以及一些类似的问题,例如

但是,对于如何为我的应用程序实现它,我仍然有些困惑。我计划针对以下设备配置

在此处输入图像描述

我认为我需要按如下方式构建项目布局是否正确:

  • 中等密度普通屏幕 HVGA 320x480 (160dpi):

    res/layout-mdpi (320 x 480 )
    res/layout-land-mdpi (480 x 320 )
    
  • 高密度普通屏幕 WVGA800 480x800 (x854) (240 dpi)

    res/layout-hdpi (480 x 800)
    res/layout-land-hdpi (800 x 480)
    

但是中等密度的大屏幕设备呢?

我也计划使用高密度和中等密度的绘图集。在这个早期阶段,我主要关心的是为每个布局使用合适的背景图像。例如,为了同时支持480x800 和 480x854 尺寸,我打算简单地使用 ImageView 作为背景,例如:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/bg"
    android:scaleType="center"/>

'bg' drawable 将始终为480x854并使用:

android:scaleType="center"

我希望这会照顾这两种屏幕尺寸。从而图像保持其原始外观,但以 480x800 屏幕为中心。我会从图像中丢失一些像素,但只要图像没有缩放,就可以满足我的需要。

我计划为普通屏幕设置一组 320x480 资源。

我只是希望我在这里遵循正确的程序,所以我感谢你们提供的任何信息/提示。提前致谢

4

1 回答 1

3

根据我的经验,只要您有不同密度的可绘制对象,您实际上并不需要为小/中/大/等屏幕自定义布局。正如文档所说,Android 将尝试在不同的屏幕尺寸上正确呈现您的布局。

默认情况下,Android 会调整应用程序布局的大小以适应当前设备屏幕。在大多数情况下,这可以正常工作。在其他情况下,您的 UI 可能看起来不太好,并且可能需要针对不同的屏幕尺寸进行调整。

“其他情况”仅适用于您真的想在更大的屏幕上更改布局。

使用android:scaleType="center"对我有用,但就像你说的那样,如果它也应该适合较小的屏幕,它会在大屏幕上的布局周围留下空白空间。如果您有一个完全自定义的视图,其中包含应该完全正确放置的“小部件”,并且您不想以编程方式确定缩放并将相同的缩放应用于您的小部件,那么这绝对是要走的路。

于 2012-07-02T11:16:27.403 回答