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

Как сделать этот текст написан вертикально? Как повернуть текст на 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);