0

我有一个图像路径,我将其解码为位图。我发现 Bitmap 太大并试图调整它的大小。它不起作用(图像太大),我的代码可以吗?

ImageButton myImage = (ImageButton) findViewById(R.id.image);

Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
Bitmap.createScaledBitmap(myBitmap, NEW_WIDTH, NEW_HEIGHT, true);

myImage.setImageBitmap(myBitmap);
4

1 回答 1

3
Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(myBitmap, NEW_WIDTH, NEW_HEIGHT, true);
myBitmap.recycle();
myBitmap = null;

它旨在不更改原始位图。您没有捕获参考,因此它只是被丢弃了。

请记住,以这种格式创建位图会占用更多内存,因为您在创建新位图的同时仍保留旧位图。如果您经常这样做并且不丢弃旧的引用,那么您的堆将迅速增长。

于 2012-05-31T21:57:34.850 回答