从字节数组转换大位图

时间:2014-08-11 06:19:12

标签: java android bitmap bytearray bitmapfactory

我知道这个问题在这里被问了这么多次。我经历了所遇到的所有事情,不幸的是他们都说了同样的答案。

我的要求:我需要将巨大的字节数组转换为位图。我的意思是巨大的,我发送一个http请求来获取图像,图像被提取为字节数组,我需要在图像视图中的应用程序中显示这个图像。问题是,我需要获取的图像可以是任何大小,范围从100kb到10 + mb。以下是我在互联网上找到的用于在android中将字节数组转换为位图的解决方案。

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata.length); //bitmapdata is the byte array

这适用于小图像,但随着图像尺寸从2-3mb开始增加,这将因内存不足错误而崩溃。有没有更好的方法来进行位图转换,这会让我的应用程序崩溃?

1 个答案:

答案 0 :(得分:0)

重型位图通常意味着非常大的位图。 您可以通过使用带有BitmapFactory的选项来限制字节数组(或输入流)中结果位图的大小:

Options options = new Options();
options.outWidth = widthLimit;
options.outHeight = heightLimit;
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length, options);

这应该让你开始。