如何解决回收位图android.graphics.bitmap异常?
我有一个活动,我的活动包含ImageView和两个按钮。我已将可绘制动画指定给ImageView。当您单击“下一步”按钮时,动画将在动画更改之前更改,我只需使用以下代码清除可绘制动画帧如何解决回收位图android.graphics.bitmap异常?,android,android-animation,Android,Android Animation,我有一个活动,我的活动包含ImageView和两个按钮。我已将可绘制动画指定给ImageView。当您单击“下一步”按钮时,动画将在动画更改之前更改,我只需使用以下代码清除可绘制动画帧 loadingAnimation.stop();//drawable animation object for (int i = 0; i < loadingAnimation.getNumberOfFrames(); ++i){ Drawab
loadingAnimation.stop();//drawable animation object
for (int i = 0; i < loadingAnimation.getNumberOfFrames(); ++i){
Drawable frame = loadingAnimation.getFrame(i);
if (frame instanceof BitmapDrawable) {
((BitmapDrawable)frame).getBitmap().recycle();
}
frame.setCallback(null);
}
loadingAnimation.setCallback(null);
请帮帮我
Drawable frame = loadingAnimation.getFrame(i);
if ((null != frame && ((BitmapDrawable)frame).getBitmap().isRecycled())) {
((BitmapDrawable)frame).getBitmap().recycle();
} else {
log("bitmap is already recycled");
}
frame = null;
至少像这样,您可能需要对其进行更改以完全适合您的代码。它会崩溃,因为当您按back时,它会尝试加载您删除的帧。您不应该删除它们,也不应该在删除后使用它们。我添加了这个“if(((BitmapDrawable)frame).getBitmap()!=null”同样的问题。当您单击“previous”时,您必须再次使用getBitmap,因为现在您在单击“下一步”时将其删除,然后稍后您将尝试显示删除的位图。如何使用getBitmap()请帮助我更改此行时会发生什么:
((BitmapDrawable)frame.getBitmap().recycle()代码>插入:((BitmapDrawable)帧).getBitmap()代码>当我单击上一个按钮时,如果(getBitmap=null),则将调用((BitmapDrawable)frame.getBitmap();对,我没有可绘制动画,如果我不删除帧,它将崩溃,例外是“java.lang.OutOfMemoryError:位图大小超过VM预算”
Drawable frame = loadingAnimation.getFrame(i);
if ((null != frame && ((BitmapDrawable)frame).getBitmap().isRecycled())) {
((BitmapDrawable)frame).getBitmap().recycle();
} else {
log("bitmap is already recycled");
}
frame = null;