2

我有一个关于 Android 分辨率及其在模拟器上的表示方式的快速问题。我已经建立了一个测试项目来测试许多不同的分辨率以及它们在每个方向上的外观。所以我创建了drawable-land-ldpi、mdpi、hdpi-xhpdi,并对drawable-port做了同样的事情。我也有所有的布局文件夹,即 small med large x large、small-land、med-land、large-land、x-land

我创建了 8 个测试图像,只是说小端口、陆地、中端口、陆地等,只是为了检查 Android 是否选择了正确的图像。我还为每个布局文件夹创建了一个布局文件,在布局文件中我有一个仅指定文件夹名称的文本字段,因此我知道正在使用哪个布局文件夹。

我有两个问题,首先是我是否为每个文件夹创建了正确的图像大小。我创建的图像尺寸如下

可绘制土地 ldpi - 320 * 240 可绘制端口 ldpi - 240 * 320

可绘制土地 mdpi - 480 * 320 可绘制端口 mdpi - 320 * 480

可绘制土地-hdpi - 800 * 480 可绘制端口-hdpi - 480 * 800

可绘制土地 xhdpi - 1080 * 720 可绘制端口 xhdpi - 720 * 1080

我的第二个问题是为什么这些在模拟器上似乎不能正确表示?例如,我创建了一个带有一个屏幕的 Android 应用程序,图像位于相应的文件夹中。我创建了两个模拟器,一个是 2.3.3,一个是 3.0 平板电脑。

如果我在我的设备上运行该设备,它将使用中等分辨率文件夹中的图像并使用中等布局文件夹。因此,如果是端口,它将使用默认布局文件夹中的布局和 drawable-port-mdpi 中的图像,如果是横向,它将使用默认土地文件夹中的布局和 drawable-land-mdpi 中的图像。

但是,如果我在模拟器上运行它,在 2.3.3 设备上,它使用来自中等布局文件夹的布局文件夹,但来自 drawable-hdpi-port 的图像,如果它的横向使用中等横向布局文件夹,但是来自drawable-hdpi-land的图像。如果我在 3.0 平板电脑模拟器上运行它,它使用来自 xLarge 端口和 xLarge 土地的正确布局,但它使用来自 drawable-mdpi 文件夹的图像。

我已在清单中设置以支持所有分辨率和布局。模拟器这样做有什么原因吗?我目前没有 Android 平板电脑来测试这个,因为朋友忘了带它,所以我无法测试这在平板电脑上是否正常工作。

我希望能够使用模拟器尝试一系列设备进行测试,但如果它没有选择正确的图像,那么我不能依赖它。其他人有这样的问题吗?还是我做错了什么?

任何信息将不胜感激!

4

1 回答 1

1

像素密度很重要。例如,您的 hdpi 图像可能大小合适,但像素密度不正确,它们仍会在这些文件夹中缩放。例如,您的 hdpi 图像应具有 ~240dpi 的像素密度。查看开发人员指南以支持多种屏幕尺寸:

http://developer.android.com/guide/practices/screens_support.html

另一个问题是屏幕可能有多种尺寸以及不同的像素密度,例如,平板电脑可能是 10 英寸(X-Large),但仍具有中等像素密度(1280x800)。同时,如果分辨率为 2560x1600 之类的,您可以拥有另一台同样为 10 英寸且带有 xhdpi 的平板电脑。

根据像素密度指定实际布局文件夹可能会更好。即,您可以制作文件夹:

res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

你仍然可以向他们申请港口和土地。阅读有关支持多种屏幕尺寸的页面,它可能真的有助于回答您的很多问题。

于 2012-08-02T17:56:15.640 回答