drawBitmap nullpointerexception

时间:2012-08-02 02:55:12

标签: android canvas nullpointerexception drawbitmap pixmap

我在以下代码中的android java代码中遇到了nullpointerexception。这是在AndroidGraphics.java中。

public void drawPixmap(Pixmap pixmap, int x, int y) {
    canvas.drawBitmap(((AndroidPixmap)pixmap).bitmap, x, y, null);
}

AndroidPixmap.java在这里:

package com.badlogic.androidgames.framework.impl;

import android.graphics.Bitmap;

import com.badlogic.androidgames.framework.Graphics.PixmapFormat;
import com.badlogic.androidgames.framework.Pixmap;

public class AndroidPixmap implements Pixmap{
    Bitmap bitmap;
    PixmapFormat format;

    public AndroidPixmap(Bitmap bitmap, PixmapFormat format){
        this.bitmap = bitmap;
        this.format = format;
    }

    @Override
    public int getWidth(){
        return bitmap.getWidth();
    }

    @Override
    public int getHeight(){
        return bitmap.getHeight();
    }

    @Override
    public PixmapFormat getFormat(){
        return format;
    }

    @Override
    public void dispose(){
        bitmap.recycle();
    }
}

铸造有什么问题吗?任何帮助都会很棒!

编辑:这是pixmap类:

package com.badlogic.androidgames.framework;

import com.badlogic.androidgames.framework.Graphics.PixmapFormat;

public interface Pixmap {
    public int getWidth();

    public int getHeight();

    public PixmapFormat getFormat();

    public void dispose();
}

2 个答案:

答案 0 :(得分:0)

您的AndroidPixmap 实现 Pixmap,它不是从Pixmap继承/扩展的。如果你转换为Pixmap,你只得到了实现,我假设它有bitmap = null。 由于您没有将Pixmap类添加到问题中,因此很难更详细地回答。

答案 1 :(得分:0)

试试这个:

public void drawPixmap(AndroidPixmap pixmap, int x, int y) {
    canvas.drawBitmap(pixmap.bitmap, x, y, null);
}

或者,如果您想在签名中保留Pixmap,可以将其设为抽象类并扩展它而不是接口。