android系统将对替代图像资源做什么

时间:2014-04-25 11:35:53

标签: android performance android-layout animation

我注意到,如果找不到匹配的资源,android会为替代资源做一些额外的工作。

例如:

我将一些图像(大小:640x960)放入drawable-hdpi文件夹,而drawable-xxhdpi文件夹中没有。

使用decodeResource()加载图片:

BitmapFactory.decodeResource(imageView.getResources(),
                             imageRes,mBitmapFactoryOptions);
  • 在xxhdpi屏幕手机(nexus 5)上,该方法需要额外30-50毫秒才能执行;除了hdpi屏幕手机(三星I9100)。

  • 加载一张图片时并不是什么大不了的事,但是在创建逐帧动画时它会产生很大的不同。

  • 我检查了screens_support,但不知道android系统做了什么以及如何避免它。

感谢您提供进一步的帮助。

1 个答案:

答案 0 :(得分:0)

如果您的设备没有资源,但有一个用于其他屏幕的资源,可以适应您的设备,Android会对其进行调整。对于drawables,Android会根据您的DPI / imageDPI比例重新调整图像。这就是为什么加载drawables会变慢的原因。您可以使用分析器验证并密切观察加载任务。

为避免这种情况,您必须为计划使用的所有屏幕配置提供图像,或使用资源文件夹手动加载图像。