Как установить drawText в SurfaceView - PullRequest
0 голосов
/ 29 марта 2012

Ну, я создал SurfaceView, который отображает растровое изображение без проблем.Но я хочу, чтобы текст отображался внизу экрана, я думаю, это можно назвать холстом.

Я пытался нарисовать текст так же, как и с растровым изображением, но безуспешно.Я получаю де силы закрыть ошибку.

У меня есть что-то вроде этого:

        public void run() {

        while (isRunning) {
            if (!ourHolder.getSurface().isValid())
                continue;

            Canvas canvas = ourHolder.lockCanvas();

            canvas.drawColor(Color.WHITE);

            canvas.drawText(score, 200, 100, null);

            canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null); // DRAW FIRST
                                                                // ENEMY

            ourHolder.unlockCanvasAndPost(canvas);

Я уже пытался настроить новую Paint, вместо использования "null", но это не сработало: /

Подскажите, пожалуйста, как это сделать или почему это не работает.Я новичок в программировании Android ...

Спасибо;)

1 Ответ

2 голосов
/ 29 марта 2012

Странно. Код выглядит ясно. Картинка не покрывает текст?

Пока что назначьте текстовую краску и установите цвет. Попробуйте это для тестов:

Canvas canvas = null;
try {
    canvas = ourHolder.lockCanvas();
    synchronized (ourHolder) {
        canvas.drawColor(Color.WHITE);
        canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null);
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        canvas.drawText("XXXX", 200, 100, paint);
    }
} catch (Exception e) {
    Log.e(TAG, "run() lockCanvas()", e);
} finally {
    if (canvas != null) {
        ourHolder.unlockCanvasAndPost(canvas);
    }
}

ADD

Размер SurfaceView больше 200х100? Попробуйте canvas.drawText("XXXX", 20, 20, paint);

...