BitmapFactory.Options-inSampleSize

时间:2018-06-19 07:35:01

标签: android imageview bitmapfactory

我将我的问题提到以下文章: https://developer.android.com/topic/performance/graphics/load-bitmap

加载内存优化图像的方法在我的项目中不起作用。

简化示例:

  • final BitmapFactory.Options options = new BitmapFactory.Options();
  • options.inSampleSize = 2;
  • BitmapFactory.decodeResource(RES,渣油,选项);

但结果取决于我的设备的分辨率!

  • 图像的原始分辨率:450 * 225
  • 流程后的预期解决方案:225 * 112
  • HD的结果:450 * 224
  • FHD的结果:675 * 336

所以即便如此,当我为给定的屏幕分辨率计算完美的inSampleSize时,我将得到解码位图的正确结果。这很令人困惑,因为很多信息来源都是这么简单的推荐方式。

我的解决方案是将options.inScaled Flag设置为false(默认为true)。在此步骤之后,位图具有正确的大小(不依赖于屏幕分辨率)。

我在某处有思考错误吗?

此外: 在解码完整图像之前(使用options.inJustDecodeBounds = true;)options.outHeight / options.outWidth显示原始图像的分辨率。这意味着在计算inSampleSize时没有机会处理这个问题(参见https://developer.android.com的文章)。

0 个答案:

没有答案