Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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
Android ';OutOfMemoryError';将多个图像添加到ViewFlipper内的ImageView时?_Android_Out Of Memory_Viewflipper - Fatal编程技术网

Android ';OutOfMemoryError';将多个图像添加到ViewFlipper内的ImageView时?

Android ';OutOfMemoryError';将多个图像添加到ViewFlipper内的ImageView时?,android,out-of-memory,viewflipper,Android,Out Of Memory,Viewflipper,我有一个片段包含6个视图翻转器,每个翻转器至少包含10个图像视图。我尝试加载所有图像并将它们放入ImageView中,但受限的内存不允许我这样做。每次运行应用程序时,都会发生此异常 当我减少应用程序运行的图像数量时,这不是一个解决方案。 那么最好的方法是什么呢 以下是我迄今为止所做的尝试: for(int i=0; i<flippers.length; i++) { for (int j = 0; j < names.length; j++) { int im

我有一个片段包含6个视图翻转器,每个翻转器至少包含10个图像视图。我尝试加载所有图像并将它们放入ImageView中,但受限的内存不允许我这样做。每次运行应用程序时,都会发生此异常

当我减少应用程序运行的图像数量时,这不是一个解决方案。
那么最好的方法是什么呢

以下是我迄今为止所做的尝试:

for(int i=0; i<flippers.length; i++) {
    for (int j = 0; j < names.length; j++) {
        int imageResource = getResources().getIdentifier(names[j], "drawable", rootView.getContext().getPackageName());
        ImageView imageView = new ImageView(rootView.getContext());
        imageView.setImageResource(imageResource);
        flippers[i].addView(imageView);
    }
}

for(int i=0;i在加载前使用库调整图像大小

您可以使用的一些库包括


此库将帮助您缓存图像。当不需要图像时,您可以将其从内存中清除

您是否检查了此项?我认为您可以使用一些具有图像缓存和在使用图像之前调整图像大小的库来减少内存使用量。有很多,Android Universal image Loader库可能是您的一个不错选择。您可以需要减小图像大小(像素),例如一个1080*3000像素的图像,大小为“70 Kb”,获得大约“50 Mb”的ram+1,我使用毕加索,它只会加载大多数图像。现在我有两个带空图像视图的翻视器。这是为什么?是因为内存吗?加载图像时是否使用毕加索的.resize()方法?