gpt4 book ai didi

android - Cant parcel a recycled bitmap 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:57 27 4
gpt4 key购买 nike

我正在尝试将图像添加到相机表面 View ,并尝试使用以下代码获取该图像。

       else if(v.equals(findViewById(R.id.ok_button))){
// saveImage();

topbar.setVisibility(View.GONE);
menubar.setVisibility(View.GONE);
bottom.setVisibility(View.GONE);

View s = ml.getRootView();
s.setDrawingCacheEnabled(true);

Bitmap b = s.getDrawingCache();


Bitmap watermarkimage=b;
s.setVisibility(View.GONE);
Log.e("ok","ok");
Intent i=new Intent(CameraActivity.this,Update.class);
i.putExtra("data",watermarkimage);
startActivity(i);
finish();
}

我保存了整个 Activity 以获取图像。通过使用以下代码我获得了位图

 View s = ml.getRootView();
s.setDrawingCacheEnabled(true);

Bitmap b = s.getDrawingCache();

当我尝试将此位图发送到另一个 Activity 时出现此错误

12-05 17:58:38.700: E/AndroidRuntime(10590): FATAL EXCEPTION: main
12-05 17:58:38.700: E/AndroidRuntime(10590): java.lang.IllegalStateException: Can't parcel a recycled bitmap
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.graphics.Bitmap.checkRecycled(Bitmap.java:210)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.graphics.Bitmap.writeToParcel(Bitmap.java:960)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.os.Parcel.writeParcelable(Parcel.java:1151)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.os.Parcel.writeValue(Parcel.java:1070)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.os.Parcel.writeMapInternal(Parcel.java:488)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.os.Bundle.writeToParcel(Bundle.java:1552)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.os.Parcel.writeBundle(Parcel.java:502)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.content.Intent.writeToParcel(Intent.java:5492)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1341)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
12-05 17:58:38.700: E/AndroidRuntime(10590): at android.app.Activity.startActivityForResult(Activity.java:2873)

最佳答案

尝试制作此位图的副本或克隆并将副本打包。

Bitmap watermarkimage = b.copy(b.getConfig(), true);

我敢猜测 getDrawingCache 返回的数据与 b 和 watermarkimage 共享。所以也许 setVisible 到 Gone 导致它回收。

关于android - Cant parcel a recycled bitmap 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724061/

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