按屏幕尺寸排列的 Android 资源文件夹

2023-12-24

我开发了一款Android游戏,支持市场上几乎所有的分辨率(240x320、320x480、480x800、480x854、600x1024)。

我的问题是,当我尝试支持平板电脑时,我不明白为什么 Android 将资源划分在不同的文件夹中(hdpi、ldpi、mpdi、large-mdpi,...),而该限定符没有用! 我有几个图形集(根据宽度),但我要疯了,例如,使用密度为 mdpi 或 ldpi 的 480x800 平板电脑!不可能到达所有设备。

那么,您知道有什么方法可以将可绘制对象/位图划分到文件夹中,但只能通过分辨率访问吗?是的,我知道位图别名,但这不是解决方案。

Thanks


我相信您将屏幕尺寸与像素密度混合在一起:

来自开发指南:

  • 该平台支持一组资源限定符,使您可以根据需要提供特定于大小和密度的资源。特定大小资源的限定符是small, normal, large, and xlarge。那些特定于密度的资源是ldpi (low), mdpi(中等的),hdpi(高)和xhdpi(超高)。限定符对应于中描述的广义密度支持的屏幕范围 http://developer.android.com/guide/practices/screens_support.html#range, above.
  • 该平台还提供了<supports-screens> http://developer.android.com/guide/topics/manifest/supports-screens-element.html清单元素,其属性android:smallScreens, android:normalScreens, android:largeScreens, and android:xlargeScreens让您指定您的应用程序支持的通用屏幕尺寸。另一个属性 android:anyDensity 可让您指示应用程序是否包含对多种密度的内置支持。

编辑:将我的评论添加到回复中。

以评论中的示例为例,Archos 的屏幕为 7 英寸,而 Nexus One 的屏幕为 3.7 英寸。在相同像素数量下,Nexus One 的像素密度是其两倍。请记住,dpi 表示每英寸点数。这意味着相同的图像在 Archos 中渲染的大小是 Nexus One 中的两倍.

应在布局中处理屏幕尺寸差异. Use res/layout-normal对于 Nexus One 和res/layout-large对于爱可视。这样,您将可以控制不同屏幕尺寸的完整布局(也许您需要限制某些在 Archos 中不必要的大部件),并决定是否要为可绘制对象保留固定大小或将其扩展为必要的。

或者,如果您确实想保持尺寸与屏幕成比例,而不管屏幕尺寸如何,不拉伸图像,那么你可以创建两组图像,即image1-normal.png、image2-normal.png和image1-large.png、image2-large.png等,都在res/drawable-mdpires/drawable-hdpi文件夹,您可以从以下位置的 xml 文件访问该文件夹res/layout-normal and res/layout-large.

总之,完整的要求应该通过布局和绘图的组合来处理:

  • 联系一号: layout-normal, drawable-hdpi
  • Archos 7: layout-large, drawable-mdpi
  • Xoom: layout-xlarge, drawable-mdpi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按屏幕尺寸排列的 Android 资源文件夹 的相关文章

随机推荐