Возможно ли расширить Canvas в Android? - PullRequest
1 голос
/ 10 марта 2012

У меня есть повернутый класс TextView, холст которого я вращаю в методе onDraw:

@Override
protected void onDraw(final Canvas canvas) {
    canvas.save();
    canvas.rotate(-90);
    canvas.translate(-getHeight(), 0);
    super.onDraw(canvas);
    canvas.restore();
}

TextView правильно позиционируется и поворачивается, но текст кажется обрезанным:

rotated text view with clipped off text

Как правильно развернуть Canvas, чтобы TextView не обрезал текст?

Примечание область выделениярезультат рисования границ клипа canvas прямо перед super.onDraw(canvas), поэтому я знаю, что область клипа правильная.

1 Ответ

0 голосов
/ 01 декабря 2017

Конечно, текст обрезается! Если вы поворачиваете холст, вы просто поворачиваете чертеж внутри View, тогда как границы (которые не зависят от Canvas, но они определены View) не поворачиваются.
Поэтому вы должны повернуть все View, как показано ниже:

this.setRotation(-90); // 'this' is your view.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...