Intereting Posts
Как добавить изображение значка в качестве подсказки для EditBox в Android После отправки данных на сервер, как печатать ответ в следующем действии? OnTouchEvent () не будет запущен, если вызывается setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) Как подтвердить учетные данные устройства перед Android 5.0 (API 21)? Как установить растровое изображение в фоновом режиме для просмотра Android API 10-18? Приложение не в результатах поиска в Google Play Автоматически устанавливать активированный элемент в ListView TextView с разными шрифтами и стилями? Ошибка в окончательной последовательности запуска Не удалось выполнить команду MI -gdb-set target-async off Android – собственные сокеты, не удаляющие 3G-режим сна при первой попытке Как построить сложный макет в андроиде с несколькими списками просмотров Android.os.NetworkOnMainThreadException с помощью rxjava на android Какова альтернатива устаревшему Canvas.getMatrix ()? Получение сообщений GTalk в собственном приложении? Закусочная и другие анимации перестали работать на некоторых устройствах Android

Направление рисования холста

Как сделать этот текст написан вертикально? Как повернуть текст на 90 градусов? Напиши каждое письмо индивидуально глупо, но теперь я не знаю другого пути.

Paint paint = new Paint(); public DrawView(Context context, double arr[]) { super(context); paint.setColor(Color.BLACK); } @Override public void onDraw(Canvas canvas) { canvas.drawText("Test",50, 50, paint); } 

Solutions Collecting From Web of "Направление рисования холста"

Просто вращающийся текст (или что-то еще) легко: используйте метод rotate() для поворота холста (после этого он поворачивается назад, в противном случае все, что вы рисуете, поворачивается):

 canvas.save(); canvas.rotate(90f, 50, 50); canvas.drawText("Text",50, 50, paint); canvas.restore(); 

Методы save() и restore() соответственно сохраняют состояние холста и восстанавливают его. Таким образом, остальные ваши нарисованные элементы не вращаются. Если вы хотите только нарисовать текст, эти два метода не нужны.

Если вы хотите поместить символы строки друг под друга, вам нужно обработать каждый символ отдельно. Сначала вам нужно будет получить высоту шрифта, и при рисовании каждого символа вам понадобится увеличить y-координату с этой высотой снова и снова.

 int y = 50; int fontHeight = 12; // I am (currently) too lazy to properly request the fontHeight and it does not matter for this example :P for(char c: "Text".toCharArray()) { canvas.drawText(c, 50, y, paint); y += fontHeight; } 

Правильная версия: Canvas canvas_front = new Canvas (bitmap_front);

  Paint paint = new Paint(); paint.setColor(Color.rgb(140, 0, 0)); paint.setAlpha(80); paint.setStrokeWidth(2); 

Canvas_front.drawLine (0, (float) (frontIV.getHeight () * 0.9), frontIV.getWidth (), (float) (frontIV.getHeight () * 0.9), краска);

  canvas_front.save(); canvas_front.rotate((float) 90 , 50, 50); canvas_front.drawText("Text",50, 50, paint); canvas_front.restore(); frontIV.setImageBitmap(bitmap_front);