Android多屏幕设计

4
我知道在Android平台上有很多关于多屏幕支持设计的文档,我已经阅读了Android指南(点击这里)以及一些类似的问题(例如这个)。但是,我仍然不太清楚如何在我的应用程序中实现它。我计划针对以下设备配置进行开发:

enter image description here

我需要把项目布局结构设置如下这样吗?
  • Medium density Normal screens HVGA 320x480 (160dpi):

    res/layout-mdpi (320 x 480 )
    res/layout-land-mdpi (480 x 320 )
    
  • High density Normal screens 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”可绘制对象始终为480x854,通过使用以下内容:
android:scaleType="center"

我希望这可以解决两种屏幕尺寸的问题。图像将保持原始外观,但会居中显示在480x800的屏幕上。我将失去一些像素,但只要图像不缩放,就能满足我的需求。
我计划为普通屏幕使用一组320x480的资源。
我只是希望我按照正确的步骤操作,因此非常感谢您们提供的任何信息/建议。提前致谢。

不确定您的问题/疑问具体是什么,您提供的链接以及这个链接 http://developer.android.com/guide/practices/screens_support.html 应该能帮助您入门。我的经验是,对于多屏幕尺寸的支持,在您手头有实际设备测试布局之前,有时候您不会看到问题。此外,您还缺少xhdpi,越来越多的新设备正在使用此显示配置。 - azgolfer
1个回答

3
根据我的经验,只要你有不同密度的可绘制对象,就不需要为小/中/大等屏幕自定义布局。就像文档所说,Android会尝试在不同的屏幕大小上正确渲染您的布局。
默认情况下,Android会调整应用程序布局以适合当前设备屏幕。在大多数情况下,这很好用。但在其他情况下,您的UI可能看起来不太好,需要针对不同的屏幕大小进行调整。
'其他情况'仅适用于您真正想在较大的屏幕上更改布局的情况。
对我而言,使用android:scaleType="center"可以解决问题,但是,如果它也应该适合较小的屏幕,则会在较大的屏幕周围留下空白空间。如果您具有完全定制的视图,并且要将 'widget' 放置在确切的位置,而且您不想编程确定缩放并将相同的缩放应用于您的窗口小部件,则绝对应该采用这种方法。

是的,谢谢@Ibatteau,这确实是很好的信息。经过更多阅读,专注于拥有正确密度的资源是前进的方式。android:scaleType="center"至少对我在480x800 / 480x854背景下有所帮助。我接受这个答案,但我希望如果可能的话能听到更多回复,那么这会关闭问题吗?我是这个网站的相对新手 :) - elgoog
1
不用担心,接受答案并不会关闭问题,其他人仍然可以评论或添加新的回答。有点令人失望的是,@Raykud在下面对我给出的每个答案都进行了负评 :) - Lukas Batteau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接