@Decker

Как отобразить текст на canvas?

Доброго времени суток всем. Учусь программировать под Android, пока, скажем так в самом начале пути ;) Поставил себе учебную задачу - нарисовать шахматную доску, при этом сама доска и клетка в ней у меня определены как отдельные классы. Класс клетки доски наследуется от Button и определен как:

public class GamePiece extends Button { .. }

Сами клетки GamePiece отображаются в LinearLayout, для которого переопределен метод onLayout, внутри которого вычисляются новые размеры элемента для каждого View GamePiece. Что дает нам возможность размещать на экране произвольные шахматные доски, например 4x4, 8x8 и т.п. Сама клетка доски прорисовывается из картинки в onDraw(Canvas canvas):

bitmap = BitmapFactory.decodeResource(getResources(), imageId);
bitmap = Bitmap.createScaledBitmap(bitmap, edgeSize, edgeSize, true);
canvas.drawBitmap(bitmap, padding, padding, null);


Где imageId - идентификатор изображения в ресурсах (черная она или белая). Хочу до конца понять как работать с canvas. Например, хочу поверх этой картинки отобразить текст с номером клетки. Но например, если сделать вот так:

canvas.drawText("Text", 0, 0, new Paint());

То текста я не вижу. В какую сторону копать и как отобразить текст поверх BitMap'а? Заранее спасибо.
  • Вопрос задан
  • 450 просмотров
Решения вопроса 1
@Decker Автор вопроса
Все ... увидел ... спасибо ;) Сделал так, вместо рисования bitmap:

Paint p = new Paint();
		    p.setColor(Color.RED);
		    canvas.drawRect(new Rect(0, 0, 10, 10), p);
		    p.setColor(Color.YELLOW);
		    canvas.drawText("*", 10, 10, p);

И увидел и красные квадратики и желтый текст. Теперь осталось понять как задать размер и т.п.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы