본문 바로가기

Android

[Android] ImageView Scroll 가로, 세로, 대각선


ScrollView와 HorizontalScrollView를 이용해서 ImageView(화면크기를 넘어서는)를 스크롤 하려고 한다.



기본적으로 제공되는 아래와 같은 형태의 Layout으로는 가로스크롤 따로, 세로스크롤 따로 밖에 되지 않는다.

<ScrollView
..
>
<HorizontalScrollView
...
>
<ImageView
...
/>
</HorizontalScrollView>
</ScrollView> 

위와 같이 되어있는 레이아웃의 경우,
각 뷰에 대한 이벤트가 한번에 하나씩만 일어나기 때문에,
이미지뷰는 대각선으로 스크롤 되지 않는다.

이를 해결하기 위해 OnTouchListener로 이벤트를 직접 조작했다.
(horizontalscrollview, scrollview 둘중 하나에만 이벤트가 일어나도 가로챈다.)
이 방법은 
멤버변수 선언 메소드 구현 터치리스너 override 터치리스너 등록
4단계로 이루어진다.






1. 멤버변수 선언


2. 좌표처리 메소드 구현


3. OnTouchListener

4. touchListener 등록







화면 디스플레이 크기보다 큰 이미지를 넣고 해보면 확인 할 수 있다.

실제로 가로스크롤과 세로스크롤이 모두 한꺼번에 사용되는 걸 볼 수 있다.