2010-10-28 100 views
0

我试图简单地在QVGA设置下测试我的应用程序,但是当我运行我创建的QVGA模拟器时,95%的时间加载了与HVGA相关的资源。我有我的应用程序中包含的自定义位图,所以对我来说能够验证外观至关重要。Android模拟器加载密度错误

要查看的密度被视为,我添加以下代码,并显示在吐司结果:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH 
int dpiClassification = dm.densityDpi; 

// these will return the actual dpi horizontally and vertically 
float xDpi = dm.xdpi; 
float yDpi = dm.ydpi; 

Output was -> DensityClass = 160 - xDpi = 164.75 - yDpi = 165.88 

也许我只是误解,但是对于初学者来说,应该不是密度类有120的值?

我创建的AVD管理器QVGA仿真器具有以下设置:

Target: 1.6 level 4 
Hardware Property: Abstracted LCD Density = 120 (verified in config.ini file) 

在我的清单文件,我增加了以下内容:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/> 

在我的res文件夹,我有:

drawable 
drawable-hdpi 
drawable-ldpi 
drawable-mdpi 

有人能告诉我为什么模拟器不加载低密度绘图?这个QVGA仿真器中的drawable与HVGA仿真器中的drawable完全相同(不是我想要的),是的,我在将它们添加到LDPI文件夹(大幅缩小)之前缩小了图片大小。对于没有明显的理由,偶尔模拟器实际上将正确地加载和一切正常显示,但同样,这只是发生的时间约为5%,没有明显的理由为什么。

回答

1

我一直在努力使用我的应用程序返回中等密度,无论我现在使用什么类型的模拟器。一旦我发现支持屏幕/ anyDensity声明,解决了我的问题。我注意到文档在第4级之后出错了,你不需要清单文件中的那条语句。但是,我使用的是2.2,所以这是错误的。

总而言之,这可能与您的问题有关。

我真的想指出的是this webpage.不要在QVGA上浪费太多时间,你可以在别处看到更好的时间。

+2

我希望这对我来说很简单。不管我做了什么,我很少得到期望的结果。谢谢虽然链接,这是一个有点欣慰地知道,有这么几个电话,但我仍然讨厌的事实,即使是一个人可能与我的应用程序的一个不愉快的经历,只是因为我没有能力彻底测试。 – Michael 2010-11-09 00:18:47