Android分辨率和模拟器没有选择正确的图像

时间:2012-08-02 09:02:57

标签: android android-layout

我有一个关于Android分辨率及其在仿真器上的表示方式的快速问题。我已经设置了一个测试项目来测试许多不同的分辨率以及它们在每个方向上的外观。所以我创建了drawable-land-ldpi,mdpi,hdpi-xhpdi,并为drawable-port做了同样的事情。我也有所有的布局文件夹,即小型大型x大型,小型土地,中型土地,大型土地,x-land

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

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

drawable-land-ldpi - 320 * 240 drawable-port-ldpi - 240 * 320

drawable-land-mdpi - 480 * 320 drawable-port-mdpi - 320 * 480

drawable-land-hdpi - 800 * 480 drawable-port-hdpi - 480 * 800

drawable-land-xhdpi - 1080 * 720 drawable-port-xhdpi - 720 * 1080

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

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

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

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

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

任何信息都将非常感谢!!

1 个答案:

答案 0 :(得分:1)

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

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

另一个问题是屏幕可以是各种尺寸,以及不同的像素密度,例如,平板电脑可以是10英寸(X-大),但仍然具有中等像素密度(1280×800)。与此同时,如果分辨率大小为2560x1600,那么你可以使用另一款10英寸x.25p平板电脑。

最好根据像素密度指定实际的布局文件夹。即,你可以制作文件夹:

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)

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