Освой Android играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Матрица

2-й курс/Закрытая зона

Метод preScale()
Метод setScale()
Метод postConcat()
Метод postScale()
Метод postRotate()
Метод setRotate()
Метод postSkew()
Метод setTranslate()

Класс android.graphics.Matrix позволяет производить различные преобразования с изображением. Мы рассмотрим несколько примеров из множества методов данного класса.

Матрица использует массив из девяти чисел 3х3. По математическим формулам производится расчёт и данные обновляются. Существуют готовые стандартные методы, в которых зашиты преобразования матрицы. Также можно создавать матрицы вручную.

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

postConcat postConcat postConcat postConcat

Выше был показан более удобный способ зеркального отражения при помощи метода preScale().

Также отражение можно добиться методами:


matrix.setScale(-1, 1); 
matrix.postTranslate(bitmap.getWidth(),0);

Отражение сверху вниз:


matrix.setScale(1, -1); 
matrix.postTranslate(0, bitmap.getHeight());

Метод postScale()

Метод postScale() позволяет изменять размеры изображения. Добавим к проекту компонент Spinner, чтобы выбирать масштаб изменения размера. И напишем код:

Исходник

Метод postRotate()

Метод postRotate() позволяет вращать изображение на заданный угол. Добавим к предыдущему примеру кнопку и напишем код:

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Метод postSkew()

Метод postSkew() позволяет наклонять изображение. Пример без проверок, возможны сбои.

Реклама