Android中的Android多屏幕支持:540x960问题

Android中的Android多屏幕支持:540x960问题,android,screen-resolution,Android,Screen Resolution,我的应用程序支持3种密度的ldpi(120)、mdpi(160)、hdpi(320),为此,我们有三个资源文件夹(ldpi、mdpi、hdpi) 但我的问题发生在HTC sensation XE(540x960)上,它的密度约为256 dpi,我的资源也很紧张 在清单文件中 <supports-screens android:xlargeScreens="false" /> 这意味着我不支持xlarge屏幕,所以540x960是否具有高密度??。 我怎样才能克服这个问题 表示

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

但我的问题发生在HTC sensation XE(540x960)上,它的密度约为256 dpi,我的资源也很紧张

在清单文件中

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

这意味着我不支持xlarge屏幕,所以540x960是否具有高密度??。 我怎样才能克服这个问题

表示“您也可以使用密度和大小限定符的组合,但这仍然为落入同一桶中的两个不同分辨率留出了一些空间。”

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

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

帮帮我


提前感谢。

您可以使用以下组合来布局HTC sensation XE(540x960):

这将用于此设备的拾取布局,并用于可绘制,它将从hdpi拾取图像,因为在这个开发人员站点中,256 dp属于hdpi的范围


希望这能对您有所帮助。

您的问题是,您的位图是针对特定的屏幕大小而不是屏幕密度设计的

简单地说,你不应该那样做。有大量不同的形状因素和屏幕大小,你不可能希望所有这些都有图形大小。因此,您修复了540x960屏幕的此问题。。。那么,使用480x854显示器(大多数hdpi摩托罗拉设备)的用户会怎样呢?如果您正在开发1024x720和1280x720显示器,您会为其提供不同的图形吗?1280x800怎么样

诚然,处理这些问题可能是一件痛苦的事情,但这是我们为设备多样性所付出的代价。谷歌已经为我们提供了相当数量的强大工具来处理这一问题

当你为Android设计一个应用程序时,你需要把这个设计想象成是在设计一个网站,而不是一个桌面(或IOS)程序。所有(或大部分)的技巧,你用来设计一个网站也适用于这里-加上你有密度意识和9.5补丁工具

如果你真的无法在不弄乱屏幕的情况下将图形/布局调整到屏幕上,你可以始终将布局放在显示屏的中心(或将其向左或向右对齐,取决于你认为最合适的布局)


编辑:

正如我上面提到的,Android中灵活UI设计的核心是将你的应用程序想象成一个网站。Roman Nurik在Android博客上有一篇文章讨论了这一点

除此之外,它主要由安卓网站等覆盖


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

您必须根据像素密度和屏幕大小来命名可绘制的。计算在这里

dpi=sqrt(540^2+960^2)/4.3“(设备大小)=~256 dp=px/(dpi/160)=540/(dpi/160)=330

可绘制的将命名为drawable-sw330dp。我已经测试过。这很好。其他可绘制的也没有问题。布局将是Layout-sw330dp


或者你可以用drawable-sw540p试试。我还没有测试过。但我想它会很好用。Layout将是Layout-sw540p

我同意你的说法,但我的问题不在于布局,因为我的布局几乎所有分辨率都是一样的,问题是可绘制的。HTC sensation属于hdpi的范围,但我的hdpi drawbles是为480x800与540x960完全不匹配,并且它被拉伸。我认为您可能需要使用。9个补丁映像可用于480x800和540x960。我昨晚对此问题考虑了很多,我的一些drawbles资源非常静态,无法制作9个补丁。因为它们非常静态。这可能是一个主要问题:(res/layout-w540dp-h960dp/layout你确定它能工作吗?因为我为HTC sensation创建了一个avd,它有540X960 hdpi,但它采用了“布局”中的布局"文件夹不是来自此文件夹。您的HTC Sensation android操作系统版本是什么?480x854与480X800相同,因此它不是问题。第二件事是我们不支持超大屏幕。问题仅限于540x960和一些绘图设备。原理保持不变;在android上以这种方式设计应用程序是一个坏主意。并且选择离开xlarge displays不会保护您不必处理多屏幕大小的问题。Galaxy Nexus的屏幕为1280x720。Galaxy Note的屏幕为1280x800。有7英寸平板电脑的屏幕为1024x720。这些显示器都不会被视为xlarge。您能告诉我更多信息吗(供我进一步应用)…有很多设备具有不同的分辨率,并采用hdpi(大屏幕而不是xlarge屏幕)那么,我该如何处理所有hdpi设备的可绘制资源。所有设备都有相同的可绘制资源,这就是hdpi。主方法是什么???没有主方法可以做到这一点;这完全取决于您的具体设计,以及您希望如何实现这一点。但我已经链接到去年Nurik的文章,主题是t特别针对540x960设备,请使用此解决方案:DisplayMetrics DisplayMetrics=new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(DisplayMetrics);Log.e(“标记”、“DisplayMetrics.density=“+DisplayMetrics.density+”,DisplayMetrics.densityDpi=“+DisplayMetrics.densityDpi+”,DisplayMetrics.scaledDensity=“+displayMetrics.scaledDensity);displayMetrics.densityDpi giv
res/layout-w540dp-h960dp/layout.xml