스크롤 뷰는 한 화면에 뷰가 모두 보이지 않을 때 사용한다.
단순하게 스크롤 뷰만 추가하면 스크롤이 생긴다.
스크롤 뷰의 방향은 디폴트는 수직 방향이다. 수평 방향의 스크롤 뷰는 HorizontalScrollView를 사용하면 된다.
이렇게 HorizontalScrollView 안에 ScrollView를 넣으면 가로 세로 모두 화면의 크기를 벗어날 경우 스크롤이 생기게 된다.
자바 소스 파일에서 setContentView 메서드로 레이아웃 파일을 지정해 준다.
그리고 init()이라는 초기화 메서드에서 img와 srcView를 초기화 해주고 srcView에 수평방향의 스크롤을 할 수 있도록
setHorizontalScrollBarEnabled(true)를 호출한다.
그리고 BitmapDrawable 자료형의 객체를 하나 만드는데, 이미지 사이즈가 큰 image를 getDrawable 메서드를 사용해서 가져온다. 그러고 img에 setImageDrawable 메서드로 이미지를 bitmap으로 설정한다.
소스 코드에서 setImageResource 메서드를 사용해도 된다. 그러고 나서 width와 height를 설정한다.
- BitmapDrawable 객체의 getIntrinsicWidth() 메서드는 이미지의 원본 가로 크기를 구할 수 있다.
- BitmapDrawable 객체의 getInrinsicHeight() 메서드는 이미지의 원본 세로 크기를 구할 수 있다.
changeImage는 이미지를 바꾸는 버튼을 만든 것이다.
getResources()를 없애면 Annotation을 추가하라는 경고가 나온다.
이미지를 설정할 때 이미지의 가로크기와 세로크기를 원본값에 맞춰서 만들었기 때문에 원본과 똑같은 크기의 이미지로 설정되었다. 또한 가로, 세로 스크롤이 가능하다.
'안드로이드 > 개념' 카테고리의 다른 글
[Android] Do It! 안드로이드 도전 04. SMS 입력 화면 만들고 글자의 수 표시하기 + 데이터 바인딩, 뷰 모델, 라이브 데이터로 풀어보기 (0) | 2021.07.27 |
---|---|
[Android] Do It! 안드로이드 도전 03. 두 개의 이미지뷰에 이미지 번갈아 보여주기 (0) | 2021.07.25 |
[Android] 프레임 레이아웃, Frame Layout (0) | 2021.07.21 |
[Android] 테이블 레이아웃, Table Layout (0) | 2021.07.21 |
[Android] 상대 레이아웃, Relative Layout (0) | 2021.07.20 |