我從圖庫中選擇圖片並將其顯示在ImageView中。但是,當我運行它時,我可以看到巨堆(高達60MB)的堆增長。使用位圖的內存堆增長
下面是代碼:
else if(requestCode == PICK_IMAGE && resultCode == RESULT_OK){
Uri selectedImage = data.getData();
try {
img = (Bitmap)MediaStore.Images.Media.getBitmap(
this.getContentResolver(),
selectedImage);
} catch (FileNotFoundException e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ImgContainer.setImageBitmap(img);
img.compress(Bitmap.CompressFormat.PNG, 100, boas);
byteArray = boas.toByteArray();
try {
boas.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
所有變量已經在上課的時候正確初始化,所以這不是問題。
我感謝您的時間和幫助。
圖像有多大,這是在某種循環? –
它不在循環中。我不知道這幅圖像有多大,但是它正在爲圖庫中的一些圖像做這件事。某些圖像加載速度快,有些會使我的UI凍結並消耗大量內存。我怎樣才能防止這一點? – user3604212