4

我的应用程序支持 3 种密度 ldpi (120)、mdpi(160)、hdpi(320),为此我们有三个资源文件夹(ldpi、mdpi、hdpi)。

但是我的问题发生在密度约为 256 dpi 的 HTC 感觉 XE (540x960) 中。我的资源被拉伸了。

在清单文件中

<supports-screens android:xlargeScreens="false" /> 

意味着我不支持 xlarge 屏幕,所以 540x960 是高密度的吗??我该如何克服这个问题???

Android 多屏支持问题说“您还可以使用密度和尺寸限定符的组合,但这仍然为两种不同的分辨率落入同一个桶留下了一些空间。

这种分辨率的drawble文件夹的名称应该是什么?或者有没有其他方法可以解决这个问题。

编辑:我的问题不在于布局,我的问题 540x960 来自 HDPI,但我的 hdpi drawbles 设计与 480x800 相关

帮我..

提前致谢..

4

3 回答 3

6

您可以将以下组合用于 HTC sense XE (540x960) 的布局:

res/layout-w540dp-h960dp/layout.xml 

这将用于此设备的选择布局和可绘制它将从 hdpi 选择图像,因为在这个开发人员站点中 256 dp 进入 hdpi 范围。http://developer.android.com/guide/practices/screens_support.html

希望这会帮助你。

于 2012-05-07T13:14:25.000 回答
2

您的问题是您为特定的屏幕尺寸而不是屏幕密度设计了位图。

说白了,你不应该那样做。那里有大量不同的外形尺寸和屏幕尺寸,您不能希望为所有这些尺寸提供图形尺寸。因此,您为 540x960 屏幕解决了这个问题……那么使用 480x854 显示器(大多数 hdpi 摩托罗拉设备)的用户怎么办?如果您正在为此开发,您会为 1024x720 和 1280x720 显示器添加不同的图形吗?1280x800呢?

诚然 - 处理这些问题可能会很痛苦,但这是我们为多样化设备付出的代价。谷歌提供了大量强大的工具来处理这个问题。

当您为 Android 设计应用程序时,您需要将设计视为设计网站,而不是桌面(或 IOS)程序。您用于设计网站的所有(或大部分)技巧也适用于此处——此外,您还拥有密度感知和 9.patch 工具。

而且,如果您真的无法将图形/布局调整到屏幕而不弄乱,您可以始终将布局置于显示器的中心(或将其左对齐或右对齐,具体取决于您认为最好的外观)。


编辑:

正如我上面提到的,Android 中灵活 UI 设计的核心是将您的应用程序视为一个网站。Roman Nurik 在 Android 博客上有一篇文章讨论这个问题。

http://android-developers.blogspot.com/2011/09/thinking-like-web-designer.html

除此之外,它主要由 Android 网站等覆盖。

http://developer.android.com/training/multiscreen/index.html

使用正确的布局和 9-patch 图像(并不总是 - 有时静态图像更好)将允许您创建在所有手机上看起来都不错的设计。但是您必须意识到 - 就像在浏览器中设计的网站一样 - 您没有也不能 100% 控制事物在每台设备上的显示方式。您需要实现的是,即使显示在您事先没有预料到的设备上,它仍然可以访问且美观。

于 2012-05-08T11:25:54.847 回答
1

您必须根据像素密度和屏幕尺寸命名可绘制对象。计算在这里...

dpi = sqrt (540^2+960^2) / 4.3"(设备尺寸)= ~256 dp = px / (dpi / 160) = 540 / (dpi / 160) = 330

drawable 将被命名为 drawable-sw330dp。我已经对此进行了测试。这很好用。其他drawables也没有问题。布局将是 layout-sw330dp

或者你可以通过 drawable-sw540p 试试这个。我还没有测试过。但我想它会很好用。布局将是 layout-sw540p

于 2013-08-22T19:40:46.527 回答