我正在嘗試顯示需要文本在遊戲中動態更改的分數。 我周圍搜索,發現大多數情況下人們使用XML佈局的文本。 我的問題是我根本不使用XML,因爲一切都是位圖圖形。 對我的情況有任何提示或建議?Android - 位圖上的動態文本
這裏是繪製方法來繪製一切
public void render(Canvas canvas){
Bitmap bitmap;
Graphics.Coordinate coords;
canvas.drawBitmap(bgBitmap, 0, 0, null);
canvas.drawBitmap(closeBtnBitmap, 700, 0, null);
canvas.drawBitmap(groundBitmap, 0, 315, null);
canvas.drawBitmap(petBitmap, petX, petY, null);
for(Graphics pics : coins){
bitmap = pics.getBitmap();
coords = pics.getCoord();
canvas.drawBitmap(bitmap, coords.getX(), coords.getY(), null);
}
canvas.drawBitmap(scoreBitmap, 300, 20, null);
canvas.drawText(scoreString, 300, 20, null); //change null to paintObj
}
下面是更新得分
private void updateScore(int score){
initScore += score;
totalScore = initScore;
scoreString = Integer.toString(totalScore);
}
它在android.graphics.Canvas.drawText(本機方法)返回NullPointerException異常的方法。我試着記錄「scoreString」,它顯示正確。
編輯:已解決,由null繪製對象引起的NullPointerException。只需創建噴漆的對象Paint paintObj = new Paint();
和設置對象paintObj.setTextSize(textSize)
和paintObj.setColor(Color.WHITE);
您可以使用畫布來顯示文本:Paint p = new Paint(); p.setColor(Color.BLUE); canvas.drawText(「your string」,10,10,p); – 2012-01-03 06:20:26
@HirenDabhi使用該解決方案,但返回錯誤。我已經添加了我的代碼。你的代碼中的 – 2012-01-03 07:14:27
你在drawText(最後一個參數)中傳遞null。傳遞新的Paint(); – 2012-01-03 07:24:05