프로그래밍
PhotoView 현재의 이미지 상태(줌, 위치)를 저장했다가 다시 적용하는 법
비즈토리
2019. 8. 12. 12:12
PhotoView는 안드로이드에서 핀치 줌을 손쉽게 구현할 수 있는 라이브러리이다.
PhotoView를 사용할 때 이미지의 현재 확대 수준과 포커스 위치를 저장했다가 이미지를 변경한 후 다시 적용해야 할 경우가 있는데, getSuppMatrix와 setSuppMatrix 함수를 통해서 할 수 있다. 코틀린으로 설명한다.
1.현재 상태 저장
var matrix = Matrix() // 현재 상태를 저장할 매트릭스를 생성한다.
photoView.getSuppMatrix(matrix) // 매트릭스를 인자로 넘겨서 상태를 받아온다.
2.이미지 변경
photoView.setImage(bitmap)
3.저장한 상태 적용
photoView.setSuppMatrix(matrix) // 저장했던 상태를 이미지가 변경된 이후에 다시 적용한다.
이렇게만 하면 전 이미지에서 확대/포커싱 한 상태가 이미지가 바뀐 후에도 적용된다.
연속적인 이미지를 표시할 때 이미지가 변경되어도 그 전 이미지에서 확대했던 부분을 계속해서 볼 수 있다.