Android: как я могу воспользоваться способностью Android вращать / масштабировать холст - PullRequest
0 голосов
/ 01 апреля 2011

Я использую SurfaceView (на самом деле я настраиваю пример приложения для Android "LunarView").Я изменил метод doDraw () этого примера приложения, чтобы я мог рисовать свои собственные вещи на холсте, предоставленном в вызове.Это работает нормально, я могу нарисовать свои собственные вещи на холсте, и они прекрасно отображаются в эмуляторе.

Что бы я хотел сделать, если это возможно, это адаптировать холст к X иОриентация по шкале Y, которую естественно использует мое приложение.Например, моему приложению нужно нарисовать простой график XY, но мне нужно, чтобы ось X была «внизу» экрана, а ось Y - «вправо».(Другими словами, типичный график, но повернутый на 90 градусов по часовой стрелке.)

Я думал, что класс Matrix с его методом setRectToRect (...) был бы просто билетом для этого, но онработает на меня.Я пробовал целую кучу различных вызовов setRectToRect (...), и всякий раз, когда я вызываю его, мой холст ничего не показывает.Если я закомментирую звонки, мой холст покажет, что я ожидаю.

В классе canvas есть несколько сверхмощных методов для масштабирования и перевода, поэтому мне кажется естественным, что он также поддерживает тип замены оси, который мне нужен, но для жизни я не могуразберись, как это сделать!

Любая помощь будет отличной, спасибо, Рич

1 Ответ

0 голосов
/ 01 апреля 2011

Rich,

Вы можете использовать функции холста ....

Вам нужно указать, куда повернуть, обычно лучше всего использовать координаты центра.Найдите центр холста и назовите его: canvas.rotate (90, cx, cy);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...