我有一个图像路径,我将其解码为位图。我发现Bitmap很大并且试图调整它的大小。它不起作用(图像太大了),我的代码好吗?
ImageButton myImage = (ImageButton) findViewById(R.id.image);
Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
Bitmap.createScaledBitmap(myBitmap, NEW_WIDTH, NEW_HEIGHT, true);
myImage.setImageBitmap(myBitmap);
答案 0 :(得分:3)
Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(myBitmap, NEW_WIDTH, NEW_HEIGHT, true);
myBitmap.recycle();
myBitmap = null;
它旨在不更改原始位图。你没有捕获引用,所以它只是被扔掉了。
请记住,以这种格式创建位图会占用更多内存,因为您在创建新位图的同时仍然保留旧位图。如果你经常这样做并且不丢弃旧的引用,那么你的堆将会非常快速地增长。