Tôi liên tục gặp sự cố này và tôi không biết phải làm gì với nó.Canvas: cố gắng sử dụng bitmap tái chế android
Tôi đã sử dụng thư viện this và khi tôi nhận được hình ảnh đã cắt, tôi lưu nó vào biến tĩnh và chuyển sang hoạt động tiếp theo. Khi tôi đến hoạt động tiếp theo, tôi tham chiếu biến tĩnh đó để lấy bitmap và cố gắng mở rộng nó. Nhưng nó cho tôi lỗi.
Đây là những gì tôi đang làm.
public void buttonCropClick(View view) throws IOException
{
imageView.setDrawingCacheEnabled(true);
imageView.buildDrawingCache(true);
Snapshot.CroppedBitmap = imageView.getDrawingCache(true);
imageView.setDrawingCacheEnabled(false);
startActivity(new Intent(this,RecommendationInfo.class));
}
trong lớp RecommendationInfo
, tôi nhận được bitmap trong dòng sau Snapshot.CroppedBitmap = imageView.getDrawingCache(true);
sau đó tôi lưu bitmap này trong biến tĩnh mà tôi tham khảo trong hoạt động tiếp theo và vượt qua nó để các chức năng sau đây.
public static Bitmap scaleDown(Bitmap realImage,boolean filter) {
float maxImageSize = HeightToSet;
float ratio = Math.min(
(float) maxImageSize/realImage.getWidth(),
(float) maxImageSize/realImage.getHeight());
int width = Math.round((float) ratio * realImage.getWidth());
int height = Math.round((float) ratio * realImage.getHeight());
// Error here
Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width,height, filter);
return newBitmap;
}
Tôi đã thử gọi bitmap.recycle()
. Tại sao tôi nhận được vấn đề này tôi có thể làm gì để giải quyết nó? Đây là logcat của tôi.
07-14 03:09:43.713: E/AndroidRuntime(19653): FATAL EXCEPTION: main
07-14 03:09:43.713: E/AndroidRuntime(19653): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected]
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.graphics.Canvas.drawBitmap(Canvas.java:1012)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.graphics.Bitmap.createBitmap(Bitmap.java:462)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:349)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.example.Libraries.Snapshot.scaleDown(Snapshot.java:42)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.example.androidtestproject.RecommendationInfo.SetRecommendationValues(RecommendationInfo.java:195)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.example.androidtestproject.RecommendationInfo.access$5(RecommendationInfo.java:183)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.example.androidtestproject.RecommendationInfo$1.onClick(RecommendationInfo.java:154)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.view.View.performClick(View.java:2552)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.view.View$PerformClick.run(View.java:9229)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.os.Handler.handleCallback(Handler.java:587)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.os.Looper.loop(Looper.java:138)
07-14 03:09:43.713: E/AndroidRuntime(19653): at android.app.ActivityThread.main(ActivityThread.java:3701)
07-14 03:09:43.713: E/AndroidRuntime(19653): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 03:09:43.713: E/AndroidRuntime(19653): at java.lang.reflect.Method.invoke(Method.java:507)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
07-14 03:09:43.713: E/AndroidRuntime(19653): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
07-14 03:09:43.713: E/AndroidRuntime(19653): at dalvik.system.NativeStart.main(Native Method)
07-14 03:09:45.515: E/TAG(20039): End of input at character 0 of
Lỗi nào cung cấp cho bạn? – Alamri
Tôi đã cập nhật câu hỏi, vui lòng kiểm tra – Mj1992
bitmap của bạn được tái chế ở đâu đó, bạn không thể gọi bitmap sau khi bạn tái chế nó. vui lòng xem liệu bạn có tái chế bitmap hay không trước khi bắt đầu hoạt động khác. – k0sh