gpt4 book ai didi

java - 处理图像时出现 OutOfMemory 异常

转载 作者:搜寻专家 更新时间:2023-11-01 07:38:46 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
OutOfMemoryError: bitmap size exceeds VM budget :- Android

我正在编写一个程序,该程序使用图库中的图像,然后在 Activity 中显示它们(一个图像 pr. Activity )。然而,我已经连续三天一遍又一遍地遇到这个错误,没有任何消除它的进展:

07-25 11:43:36.197: ERROR/AndroidRuntime(346): java.lang.OutOfMemoryError: bitmap size exceeds VM budget

我的代码流程如下:

当用户按下按钮时,会触发一个指向图库的 Intent :

 Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, 0);

一旦用户选择了图像,图像就会显示在 ImageView 中:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<ImageView
android:background="#ffffffff"
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:maxWidth="250dip"
android:maxHeight="250dip"
android:adjustViewBounds="true"/>

</LinearLayout>

在我的 onActivityResult 方法中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if(resultCode == RESULT_OK) {
switch(requestCode) {
case 0: // Gallery
String realPath = getRealPathFromURI(data.getData());
File imgFile = new File(realPath);
Bitmap myBitmap;
try {
myBitmap = decodeFile(imgFile);
Bitmap rotatedBitmap = resolveOrientation(myBitmap);
img.setImageBitmap(rotatedBitmap);
OPTIONS_TYPE = 1;
} catch (IOException e) { e.printStackTrace(); }

insertImageInDB(realPath);

break;
case 1: // Camera

decodeFile 方法来自here而 resolveOrientation 方法只是将位图包装成矩阵并将其顺时针旋转 90 度。

我真的希望有人能帮我解决这个问题。

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