Android - динамический текст на растровом изображении - PullRequest
0 голосов
/ 03 января 2012

Я сейчас пытаюсь показать счет, который требует динамического изменения текста в игре.Я искал вокруг и обнаружил, что в большинстве случаев люди используют XML-макет для текста.Моя проблема в том, что я вообще не использую XML для игры, потому что все это растровая графика.Любые советы или предложения для моей ситуации?

Вот метод рисования, чтобы нарисовать все

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 (собственный метод).Я попытался войти в систему "ScoreString", и он показывает правильно.

Редактировать: Решено, исключение NullPointerException, вызванное нулевым объектом рисования.Просто создайте объект рисования Paint paintObj = new Paint(); и установите объект paintObj.setTextSize(textSize) и paintObj.setColor(Color.WHITE);

1 Ответ

2 голосов
/ 03 января 2012

Если вы рисуете непосредственно через объект View или SurfaceView, вы можете проверить документацию Canvas:

http://developer.android.com/reference/android/graphics/Canvas.html

В частности, функция рисования текста. Это то, что я использую.

http://developer.android.com/reference/android/graphics/Canvas.html#drawText(java.lang.String, float, float, android.graphics.Paint)

Наслаждайтесь!

Если вы используете Open GL Surface, я не уверен, какие API доступны. На других платформах я загружал своих персонажей в виде текстурного атласа и просто помещал текстуры для правильного текста, который я хотел на сцене.

...