Ответ был дан, но чтобы было понятнее любому, кто читает это:
1) если вы хотите выполнить ОДНО преобразование в своем растровом изображении, вы МОЖЕТЕ использовать SET (setRotate, setScale и т. Д.).
Но учтите, что любой вызов метода "set" ОБЗОРЫ других преобразований. Это как новая матрица. Вот почему вращение OP не работает. Эти звонки не выполняются построчно. Это похоже на то, что они запланированы для выполнения во время выполнения графическим процессором, когда создается новое растровое изображение. Это как при разрешении вашей матрицы, графический процессор поворачивал ее, но затем создавал масштабированную новую, игнорируя предыдущую матрицу.
2) если вы хотите выполнить более одного преобразования, вы ДОЛЖНЫ использовать методы «pre» или «post».
А в чем разница, например, между postRotate и preRotate? Ну, этот математический материал не моя сила, но я знаю, что графические карты выполняют эти преобразования, используя матричное умножение. Кажется, это намного эффективнее. И, насколько я помню из школы, при умножении матриц порядок важен. A X B! = B X A. Итак, масштабируйте матрицу, а затем вращайте ее, отличную от вращения, а затем масштабируйте ее.
BUUUUT, поскольку конечный результат на экране один и тот же, мы, программисты высокого уровня, обычно не должны знать эти различия. GPU делает.
Ну, в тех редких случаях, когда вы выполняете действительно сложные матричные операции, и результаты не соответствуют вашим ожиданиям, или производительность ужасна, и вам нужно глубоко понимать эти методы, чтобы исправить ваш код, ну, тогда документация по Android не может в любом случае очень поможет. Вместо этого, хорошая книга по линейной алгебре станет вашим лучшим другом. ;)