0

我在我的代码中尝试了回收方法,但它似乎无法正常工作。我在我的应用程序的开头有一个 viewpager,它有大约 5 个图像,我使用位图回收来回收它

        Bitmap tempImage = ImageSampleManager.decodeSampledBitmapFromResource(getResources(),tutorial_images[position], 240, 240);
        view.setImageBitmap(tempImage);
        ((ViewPager) collection).addView(view, 0);
        tempImage.recycle();
        return view;
    }  
4

2 回答 2

0

您可以通过阅读文档来避免创建 stackoverflow 主题并等待答案。
Bitmap.recycle()用于通知系统您不再使用此位图并且可以将其从内存中释放。
所以如果你先回收它当然不能显示它。

于 2013-07-02T10:02:21.647 回答
-1

你必须检查:

   Bitmap tempImage;
   if (tempImage != null && !tempImage .isRecycled()) {
                tempImage = null;
   }
    tempImage = ImageSampleManager.decodeSampledBitmapFromResource(getResources(),tutorial_images[position], 240, 240);
    view.setImageBitmap(tempImage);
    ((ViewPager) collection).addView(view, 0);
   // tempImage.recycle();
    return view; 
于 2013-07-02T10:06:55.620 回答