Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数组元素(图像)转换为位图?_Java_Android - Fatal编程技术网

Java 如何将数组元素(图像)转换为位图?

Java 如何将数组元素(图像)转换为位图?,java,android,Java,Android,我想加载大尺寸的图像,但我有问题,使它。它崩溃了,因为OutOfMemoryError。这是我的阵列: Integer[] img = { R.drawble.pic1, R.drawble.pic2, R.drawble.pic3, R.drawble.pic4 }; 如何将img[0]、img[1]、img[2]和img[3]转换为位图? 请帮忙。。对不起,我的英语不好。试试这段代码,你会把一个ID数组转换成一个位图数组。: Integer[] img = { R.drawble.

我想加载大尺寸的图像,但我有问题,使它。它崩溃了,因为OutOfMemoryError。这是我的阵列:

Integer[] img = {
R.drawble.pic1, R.drawble.pic2, R.drawble.pic3, R.drawble.pic4
};
如何将img[0]、img[1]、img[2]和img[3]转换为位图?
请帮忙。。对不起,我的英语不好。

试试这段代码,你会把一个ID数组转换成一个位图数组。:

    Integer[] img = { R.drawble.pic1, R.drawble.pic2, R.drawble.pic3,
            R.drawble.pic4 };

    Bitmap[] bitmap = new Bitmap[img.length];
    for (int i = 0; i < img.length; i++)
        bitmap[i] = BitmapFactory.decodeResource(getResources(), img[i]);
Integer[]img={R.drawble.pic1,R.drawble.pic2,R.drawble.pic3,
R.drawble.pic4};
位图[]位图=新位图[img.length];
对于(int i=0;i
如果您在转换大尺寸图像时遇到问题,请查看。

检查此处:


而BitmapFactory类:

Android应用程序的堆大小有限(旧设备上的最小堆大小只有16MB)。这因设备而异,因此在QA期间要小心。由于位图每像素最多需要4个字节,因此大位图可以轻松填满堆(1000 x 1000像素=3.8MB)

这意味着您必须非常小心,并使用几种策略来避免浪费内存:

  • 不要同时将所有位图加载到内存中。例如,如果在
    ViewPager
    中显示它们,一次只能加载1-2页。隐藏页面时,销毁其位图并调用
    bitmap.recycle()
    ,以确保立即释放内存

  • 如果位图大于您的屏幕大小,您可以缩小它以节省内存。该技术将使您的加载量最初减少2/3/4。。如果需要进行更多微调,可以将其加载到全尺寸,然后使用
    Bitmap.createScaledBitmap
    重新缩放。不要忘记立即
    回收()
    原始大位图

  • 确保使用内存检查工具(如或
    EclipseMat
    )了解应用程序的内存使用情况。我建议在Android4+上进行大多数探索,因为2.x将位图保存在本机堆中,不容易进行探索。如果你能将应用程序的峰值内存消耗控制在16MB以下,你就不应该再遇到OutOfMemory错误


  • . 检查此主题<代码>回收
    或缩小你的图像。@Raghunandan:我试过一些将图像转换成位图的技巧。但我无法从元素数组中加载。Android在加载大型图像时遇到问题。看看这篇文章。