7

我尝试使用以下方法在画布上叠加图像:

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {

    bmOverlay = Bitmap.createBitmap(70, 70, Bitmap.Config.RGB_565);
    canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, 0, 0, null);  //line 179
    canvas.drawBitmap(bmp2, 0, 0, null);
    return bmOverlay;           
}

但是,我的应用程序不断崩溃,日志显示:

java.lang.NullPointerException at android.graphics.Canvas.throwIfRecycled(Canvas.java:954) at android.graphics.Canvas.drawBitmap(Canvas.java:980) at com.MyApp.overlay(MyApp.java:179)

任何人都可以帮忙吗?

4

2 回答 2

4

在尝试将位图绘制到画布时,我遇到了相同的 trowIfRecycled 异常。在程序开始初始化位图之前,我试图绘制一个我开始的线程。所以在我的例子中:位图是空的,我不得不寻找一个更好的地方来进行初始化。

于 2011-06-02T14:50:01.173 回答
2

虽然这是一个老问题,但我发现这对我来说是解决方案。http://nowherenearithaca.blogspot.com/2011/06/solved-bizarre-null-pointer-thrown-in.html

他们建议的地方

尝试在 Eclipse 中进行清洁。它有时似乎正在缓存并且可能会感到困惑。这似乎解决了这个特殊情况。

于 2012-02-28T22:12:29.827 回答