Android drawables - 使用xhdpi for hdpi

Tri*_*ick 2 android dpi drawable hdpi

最后两个问题没有答案,我希望"第三个的魅力"工作:)

我希望HDPI应用程序在"drawable-xhdpi"文件夹中使用那些drawable,在"drawable-mdpi"中使用LDPI设备.所以我不必复制相同的图像.这可能吗?

Rob*_*ies 8

是的,Android会缩放drawable,选择可产生最佳效果的drawable.但并非所有缩放组合都能很好地工作.降级到MDPI可能会产生明显不佳的结果.XHDPI到HDPI通常会产生非常好的结果.但鉴于目前绝大多数设备都是HDPI,因此拥有HDPI资源可能是值得的.HDPI到XHDPI的缩放并不可怕.一些1280x720设备使用XHDPI资源.这些通常看起来不错.Google TV也使用XHDPI.在巨大的屏幕上,可以看到缩放错误.

LDPI设备 - 出于所有实际目的 - 现在不存在.

确实,生成缩放资源是一个庞大的PITA.但是,在我看来,你真的需要做MDPI和HDPI.一旦你有了令人不快的工作流程,就不需要额外的大量工作来生成XHDPI.对于它的价值,如果您的作品是矢量格式,绝大多数资源不需要调整特定的分辨率.例如,似乎没有任何迫切需要像素对齐方形对象的边缘.通常它只是复杂图标和艺术品中的内部特征,可以从一些像素推动中受益.

很明显,XHDPI将变得越来越普遍.相信我,你不想在事后回去并在XHDPI中重新制作你的所有作品.我的建议是:如果你打算在一年之后仍然在运送你的应用程序,那么就把它吸干,并且在你去的时候做一些讨厌的事情,而它仍然相对容易.


mat*_*990 5

根据我的经验,如果您只在一些可绘制文件夹中放置图像,但不是全部,操作系统将为您正在使用的设备选择"最佳"图像,即使它不完全合适.例如,如果仅将一个名为arrow.png的图像放在drawable-hdpi文件夹中,则所有设备都将使用该图像作为箭头可绘制,并适当缩小或向上缩放,拉伸或缩小图像.

话虽这么说,你应该能够通过简单地将图像放在正确的文件夹中并允许设备选择正确的文件来完成你想要的.例如,如果您尝试仅使用一个图像完成任务,则arrow.png:

drawable-xhdpi/ - > arrow.png

drawable-hdpi/ - >空

drawable-mdpi/ - > arrow.png

drawable-ldpi/ - >空

drawable/ - >空

如果您在ldpi设备上使用该应用程序,设备将使用mdpi图像,因为它最接近正确的分辨率.在hdpi手机上,它将使用xhdpi图像,因为它再次是最接近正确分辨率的图像.