我从内部存储器中取出图像并将其粘贴在合并功能中的伟大图像上。在66图像之后,应用程序崩溃严重,错误内存不足。你有任何想法为什么应用程序崩溃以及如何解决它。应用程序崩溃后图像没有66来了`
public void mergeImageClicked(View v) {
int noOfImage = listFile.length;
Bitmap[] bitmap = new Bitmap[noOfImage];
Bitmap[] resizedBitmap = new Bitmap[noOfImage];
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
for (int j = 0; j < listFile.length; j++) {
bitmap[j] = BitmapFactory.decodeFile(listFile[j].getAbsolutePath(), options);
resizedBitmap[j] = ThumbnailUtils.extractThumbnail(bitmap[j], 30, 30);
}
`
答案 0 :(得分:4)
您在位图数组中保留了大量的完整大小的位图。相反,你应该只保留一个位图来加载和调整大小。
public void mergeImageClicked(View v) {
int noOfImage = listFile.length;
Bitmap[] resizedBitmap = new Bitmap[noOfImage];
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
for (int j = 0; j < listFile.length; j++) {
Bitmap bitmap = BitmapFactory.decodeFile(listFile[j].getAbsolutePath(), options);
resizedBitmap[j] = ThumbnailUtils.extractThumbnail(bitmap, 30, 30);
}
答案 1 :(得分:1)