2013-06-27 4 views
0

У меня есть ImageView с пользовательским onDraw, где я рисую несколько растровых изображений на некоторых (x, y) координатах. Эти растровые изображения не могут быть изменены. Я хочу повернуть все изображение на -90 градусов, чтобы горизонтально нарисованное изображение было размещено вертикально. (И да, этот вид живет в режиме портретного режима.)Лучший способ повернуть весь холст с несколькими растровыми изображениями?

Я пробовал несколько вариантов, используя Canvas.rotate, Canvas.scale и Matrix.postRotate, но безуспешно. Вращение легко, но получение желаемого макета кажется невозможным. Мои обратные объекты смещены за пределы представления. Я, очевидно, что-то неправильно делаю с координатой поворота или чем-то еще. Любая помощь приветствуется!

canvas.rotate(-90.0f, getWidth()/2, getHeight()/2); 

Что является лучшим решением для поворота холста?

ответ

0

Посмотрите, если это поможет. Образец Compass.java из демонстраций API делает это, используя canvas.translate сначала, а затем canvas.rotate только с углом.

int w = canvas.getWidth(); 
    int h = canvas.getHeight(); 
    int cx = w/2; 
    int cy = h/2; 

    canvas.translate(cx, cy); 
    if (mValues != null) { 
     canvas.rotate(-mValues[0]); 
    } 
Смежные вопросы