gpt4 book ai didi

java - Android:应用程序在上传图片时在设备上崩溃,java.lang.outofMemoryError

转载 作者:行者123 更新时间:2023-11-29 05:36:21 25 4
gpt4 key购买 nike

在我的 android 应用程序中,我必须允许用户单击一个按钮来打开图库并选择图像。然后需要将该特定的选定图像加载到我的布局(UI)中的 ImageView 。我有一些代码,但它来自 java.lang.outofmemory。请有人能帮助我吗?

最佳答案

您应该在 onActivityResult() 方法上解码图像 uri。调用此方法解码Bitmap。

/**
* This is very useful to overcome Memory waring issue while selecting image
* from Gallery
*
* @param selectedImage
* @param context
* @return Bitmap
* @throws FileNotFoundException
*/
public static Bitmap decodeBitmap(Uri selectedImage, Context context)
throws FileNotFoundException {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(context.getContentResolver()
.openInputStream(selectedImage), null, o);

final int REQUIRED_SIZE = 100;

int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE) {
break;
}
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}

BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(context.getContentResolver()
.openInputStream(selectedImage), null, o2);
}

有关更多详细信息,请查看主题高效显示位图

http://developer.android.com/training/displaying-bitmaps/index.html

希望对您有所帮助。

关于java - Android:应用程序在上传图片时在设备上崩溃,java.lang.outofMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com