Android API 16中添加的xxhdpi密度,在<;16如果我只提供xxhdpi资源?

Android API 16中添加的xxhdpi密度,在<;16如果我只提供xxhdpi资源?,android,bitmap,android-drawable,android-resources,android-screen-support,Android,Bitmap,Android Drawable,Android Resources,Android Screen Support,我正在进行从iOS到Android的移植,因为iOS的家伙只给了我所有图形资源的@3x版本,所以我只把它们放在res/drawable xxhdpi文件夹中。我知道不提供替代低分辨率资源不是一个好做法,但根据官方文件: 默认情况下,Android会缩放位图绘图[…],以便在每个设备上以适当的物理大小进行渲染。例如,如果应用程序仅为[…]中等屏幕密度(mdpi)提供位图绘制功能,则系统在高密度屏幕上会将其放大,在低密度屏幕上会将其缩小 现在,文件还说: xxhdpi:超高密度屏幕;大约480dpi

我正在进行从iOS到Android的移植,因为iOS的家伙只给了我所有图形资源的@3x版本,所以我只把它们放在res/drawable xxhdpi文件夹中。我知道不提供替代低分辨率资源不是一个好做法,但根据官方文件:

默认情况下,Android会缩放位图绘图[…],以便在每个设备上以适当的物理大小进行渲染。例如,如果应用程序仅为[…]中等屏幕密度(mdpi)提供位图绘制功能,则系统在高密度屏幕上会将其放大,在低密度屏幕上会将其缩小

现在,文件还说:

xxhdpi:超高密度屏幕;大约480dpi添加到API级别16中


那么,我的问题。除了xxhdpi之外,我没有提供任何位图选项,因此在运行Android API的设备上,我真的不会为低分辨率设备加载3倍的图像。这些手机的内存已经很有限,加载如此大的图像将占用大量内存。您应该使用工具调整所有不同密度的图像大小。试试这个


如果您确实想保留一个版本的图像,请将其放入可绘制文件夹(而不是可绘制的xxhdpi)。(不建议这样做,因为在某些设备上会出现外观不佳的图像)

答案是肯定的,即使在API<16的设备上,也会呈现您的资源

为什么是

这只是一个发现:如果您查看output apk res文件夹的内容。drawble xxhdpi资源文件夹转换为drawble-xxhdpi-v4

v4限定符附加了可绘制的xxhdpi文件夹。v4支持库设计用于Android1.6(API级别4),这可能有一个连接,即使在较低的API设备上也会检测到新的限定符资源

已定义限定符以更好地支持不同的分辨率设备。一旦你能够编译API>=16的APK,并且你的应用程序支持较低的API设备,即使在较低的API设备上,如果没有检测到兼容的限定符资源,也会从新的限定符文件夹中选取资源

您在API 10 emulator上的测试证实了这一点


您应该检查最佳实践,但我知道问题不在于此。

是的,大小会改变,但您考虑过分辨率吗?@AndroidProgrammer抱歉,我无法理解您的问题除了最后一部分之外,我同意这一点——您真的不应该将位图图像放在根可绘制目录中;它们会被放大,就好像它们是mdpi资产一样,在高密度屏幕上看起来会很糟糕。它是可绘制的,而不是可绘制的folderOk,我同意你的看法,正如我所说的,我知道这不是一个好的做法。但我的问题完全不同。我试图从项目中删除v4支持库,xxhpi资源仍然可见。我还尝试将
targetSdkVersion
设置为10,但它们仍然存在……是的,它们将保留visible@lorenzo-s、 我认为“v4”应该是指api级别的限定符,它与“v4支持库”无关。请参阅“”