Есть заявление в андроиде canvas.drawBitmap(visiblePage, 0, 0, paint);
Когда добавляю canvas.rotate(90)
, эффекта нет. Но если я напишу
canvas.rotate(90)
canvas.drawBitmap(visiblePage, 0, 0, paint);
Растровое изображение не отображается. Так что же я делаю неправильно?
Ответы:
Вы также можете попробовать это
Затем вы можете использовать повернутое изображение для установки в вашем просмотре изображения через
источник
bitmap.recycle()
чтобы быть уверенным.Чтобы получить Bitmap из ресурсов:
источник
If the source bitmap is immutable and the requested subset is the same as the source bitmap itself, then the source bitmap is returned and no new bitmap is created.
Короткое расширение для Котлина
И использование:
источник
Ниже приведен код для поворота или изменения размера изображения в Android.
Вы также можете проверить эту ссылку для получения подробной информации: http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
источник
По умолчанию точка вращения - это точка холста (0,0), и я предполагаю, что вы можете повернуть ее вокруг центра. Я это сделал:
источник
Я бы упростить comm1x «ы Котлин функции расширения еще больше:
источник
Используя
createBitmap()
метод Java, вы можете передавать степени.источник
Если вы поверните растровое изображение, 90 180 270 360 подойдет, но для других градусов холст будет рисовать растровое изображение с другим размером.
Итак, лучший способ - это
источник
Если ваша цель - иметь повернутое изображение в imageView или файле, вы можете использовать Exif для этого. Библиотека поддержки теперь предлагает следующее: https://android-developers.googleblog.com/2016/12/introduction-the-exifinterface-support-library.html
Ниже показано его использование, но для достижения вашей цели вам необходимо проверить документацию по API библиотеки. Я просто хотел намекнуть, что поворот растрового изображения не всегда лучший способ.
зависимость
источник
Просто будьте осторожны с типом Bitmap из вызова java-платформы, например из ответов comm1x и Gnzlt , потому что он может вернуть null. Я думаю, что это также более гибко, если параметр может быть любым числом и использовать инфикс для удобства чтения, в зависимости от вашего стиля кодирования.
Как пользоваться?
источник