В настоящее время я пытаюсь показать оценку, которая требует, чтобы текст динамически изменялся в игре. Я искал вокруг и обнаружил, что в большинстве случаев люди используют 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);
}
возвращает NullPointerException в android.graphics.Canvas.drawText (метод Native). Я пробовал записывать «scoreString», и он показывает правильно.
Редактировать: Solved, NullPointerException, вызванное нулевым объектом краски. Просто создать краски объект Paint paintObj = new Paint();
и установить объект paintObj.setTextSize(textSize)
и paintObj.setColor(Color.WHITE);
вы можете использовать холст для отображения текста: Paint p = new Paint(); p.setColor (Color.BLUE); canvas.drawText («ваша строка», 10, 10, p); –
@HirenDabhi Использует это решение, но возвращает ошибку. Я добавил свой код. –
в вашем коде вы прошли null в drawText (последний параметр). передать новую Paint(); –