2013-08-03 39 views
0

嗨即時嘗試讓我的位圖淡入和淡出。位圖被繪製到表面視圖上的畫布 。我還使用一個精靈類繪製精靈到我的畫布:試圖使位圖淡入和淡出

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) 
+0

'fadePaint'尚未初始化。你需要'fadePaint = new Paint();'在你可以調用'setAlpha(int);'之前。 – Vikram

回答

1

這是因爲你沒有初始化Paint。更改此:

static Paint fadePaint; 

要這樣:

static Paint fadePaint = new Paint(); 
+0

哦,哇哈哈愛德克我怎麼錯過了。是的,這確實是thanx的問題 – HighMrSai