W Androidzie jest oświadczenie canvas.drawBitmap(visiblePage, 0, 0, paint);
Kiedy dodam canvas.rotate(90)
, nie ma żadnego efektu. Ale jeśli napiszę
canvas.rotate(90)
canvas.drawBitmap(visiblePage, 0, 0, paint);
Nie narysowano mapy bitowej. Więc czego nie robię dobrze?
Odpowiedzi:
Możesz także spróbować tego
Następnie możesz użyć obróconego obrazu, aby ustawić widok obrazu
źródło
bitmap.recycle()
aby się upewnić.Aby uzyskać Bitmapę z zasobów:
źródło
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.
Krótkie rozszerzenie dla Kotlin
I użycie:
źródło
Poniżej znajduje się kod do obracania lub zmiany rozmiaru obrazu w systemie Android
Możesz również sprawdzić ten link, aby uzyskać szczegółowe informacje: http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
źródło
Domyślnie punktem obrotu jest punkt Canvas (0,0) i przypuszczam, że możesz chcieć obrócić go wokół środka. Ja to zrobiłem:
źródło
Chciałbym uprościć comm1x „s Kotlin funkcję przedłużacza nawet więcej:
źródło
Za pomocą
createBitmap()
metody Java możesz zdawać stopnie.źródło
Jeśli obrócisz bitmapę, 90 180 270 360 jest w porządku, ale dla innych stopni płótno narysuje bitmapę o innym rozmiarze.
Więc najlepszym sposobem jest
źródło
Jeśli Twoim celem jest obrócenie obrazu w imageView lub pliku, możesz to osiągnąć za pomocą Exif. Biblioteka wsparcia oferuje teraz, że: https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html
Poniżej znajduje się jego użycie, ale aby osiągnąć swój cel, musisz sprawdzić dokumentację biblioteki API. Chciałem tylko podpowiedzieć, że obracanie mapy bitowej nie zawsze jest najlepszym sposobem.
zależność
źródło
Po prostu uważaj na typ Bitmap z wywołania platformy java, taki jak z odpowiedzi comm1x i Gnzlt , ponieważ może zwrócić wartość null. Myślę, że jest też bardziej elastyczne, jeśli parametr może być dowolną liczbą i używać wrostka dla czytelności, zależy to od stylu kodowania.
Jak używać?
źródło