Drawing text at an angle (e.g. upside down) in Android

Damian picture Damian · Apr 5, 2010 · Viewed 17.2k times · Source

I'm trying to build a custom clock view in Android. See image http://twitpic.com/1devk7

So far to draw the time and hour markers I have been using the Canvas.rotate method to get the desired effect. However, notice that it is difficult to interpret the numbers in the lower half of the clock (e.g. 6 or 9?) because of the angle in which they are drawn.

When using drawText, is it possible to draw the text at 45/90/180 degrees so that all text appears upright when my onDraw method has finished?

Answer

Philippe picture Philippe · Nov 15, 2011

To draw a text rotated by 90 degrees at point (x,y), use this code:

canvas.save();
canvas.rotate(-90, x, y);
canvas.drawText(text, x, y, paint);
canvas.restore();