尝试使位图淡入淡出

时间:2013-08-03 18:30:18

标签: android animation surfaceview fade sprite

您好我试图让我的位图淡入淡出。位图正被绘制到画布上 在surfaceview上。我也使用精灵类将sprite绘制到画布上:

public class sprite {

static int x, y;
static int xSpeed, ySpeed;
static int height, width;
static Bitmap b;
static CanvasView canView;
static Paint fadePaint;


public sprite(CanvasView canvasView, Bitmap xSpriteSheet) {
    // TODO Auto-generated constructor stub

    b = xSpriteSheet;
    canView = canvasView;
    fadePaint.setAlpha(100);  //Heres where logcat gives me an error

     // divide by 2 for rows in sprite sheet
    //4 colums
    height = b.getHeight();
    width = b.getWidth();
    x = 0; y = 0;
    xSpeed = 5;
    ySpeed = 0;
}

public static void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    Rect src = new Rect(0, 0 , width, height);
    Rect dst = new Rect(x, y, x+width, y+height);
    update();

    canvas.drawBitmap(b, src, dst, fadePaint);
}
private static void update() {
    // TODO Auto-generated method stub  
    x += xSpeed;
}

这是我的logcat给我的东西:

 FATAL EXCEPTION: Thread-273
java.lang.NullPointerException
at com.mrsai.xsos.sprite.<init>(sprite.java:25)
at com.mrsai.xsos.Game$CanvasView.run(Game.java:101)
at java.lang.Thread.run(Thread.java:856)

1 个答案:

答案 0 :(得分:1)

这是因为你没有初始化Paint。改变这个:

static Paint fadePaint;

对此:

static Paint fadePaint = new Paint();