2010-12-01 65 views
12

所有Android文档都提到了“drawable”目录。但是,当我在Eclipse中创建一个Android项目时,它不创建“/ res/drawable”目录,但它确实创建了“/ res/drawable-ldpi”和“/ res/drawable-mdpi”。我想这些与像素分辨率有关,但是到底发生了什么?当我浏览完教程后,我手动创建了一个“drawable”目录并将我的资源放在那里,但是我需要吗?如果只有“drawable- {l | m} dpi”存在,是否提及“/ res/drawable /”工作?drawable与drawable-ldpi/drawable-mdpi

回答

2

我认为它有话跟你如何产生的Android项目。通常我会创建一个hdpi,mdpi和ldpi文件夹。基本上,“可绘制”是默认设置。 如果你在hdpi文件夹中拥有所有资源,并尝试在ldpi设备上运行它,我相信你会得到某种异常(我没有测试过,但我相信这是事实)。 有关缺省资源发生情况的详细说明,请参阅here

为了安全起见,您应该在主“可绘制”文件夹中保留默认的资源集合(是的,您可能必须手动创建),并确保与旧版Android的兼容性。 Android会首先检查特定的密度文件夹,但如果无法找到该密度的特定资源,它将回滚到默认的可绘制文件夹。

0

HDPI,在Android 1.6的加入MDPI和LDPI限定符。如果您打算支持Android 1.5,则应将所有中等dpi可绘制项目放入默认可绘制目录中。

你可以阅读一下here

1

介绍最新SDK的创建很多关于你绘制文件夹的各种屏幕密度创建一个新的应用程序时,虽然奇怪的是在文档中提到的默认“绘制”文件夹中从来没有为我所创造默认。

如果您为默认创建的所有六个密度文件夹(从drawable-ldpi到drawable-xxxhdpi)复制和调整图形资源的大小,则应用程序大小将会增加以适应沉重的图形应用程序,更不用说其他问题出现了像堆大小崩溃(它们应该为不同的设备堆大小提供不同的文件夹)。

目前,我把我所有的图形提拉 - 华电国际文件夹,除了在xhdpi,xxhdpi更高的分辨率,并且xxxhdpi文件夹中的启动器图标的副本。我不把任何东西放在mdpi和ldpi文件夹中,实际上已经删除了这些文件夹以保持应用程序清洁。我也可以将drawable-hdpi重命名为drawable,但是保留默认名称,因为它在这种情况下充当默认文件夹。

1

In this answer,@RomainGuy提到您应该在drawable文件夹中为其各自的文件夹(mdpi,xhdpi)和其他来源(如.xml文件)绘制适当的图像。

例如,
如果您将使用hdpi设备,而您没有在hdpi文件夹中放置任何图像,则不会崩溃;它将改为调整其下一个最适合的文件夹(即mdpi)的图像大小,并将展开图像。

相关问题