我想將圖像添加到相機surfaceview,並試圖通過使用下面的代碼獲取該圖像。不能包含回收的位圖錯誤
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();
}
我救了整個活動通過使用下面的代碼,我得到了位圖
View s = ml.getRootView();
s.setDrawingCacheEnabled(true);
Bitmap b = s.getDrawingCache();
得到image.And當我試圖此位圖發送到另一個活動,我得到這個錯誤
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)
你不能在onCreate()中做到這一點,因爲直到在onCreate() – Simon