어댑터뷰 (Adapter View)

이수민·2022년 12월 10일
post-thumbnail

🎨 어댑터뷰 (Adapter View)

  • 뷰그룹의 하위 클래스 중에서 레이아웃을 제외한 것을 뷰 컨테이너라고 했다.
  • 어댑터뷰 하위에 있는 그리드뷰, 리스트뷰, 갤러리, 스피너 등을 묶어서 부르는 말
  • 어댑터뷰는 그 자체를 사용하기보단 하위 클래스를 사용한다.
  • 어댑터뷰를 사용할 때 어댑터뷰의 모양을 설정하고 데이터를 채워주는
    ArrayAdapter<T> 클래스를 함께 사용한다.


🎨 리스트뷰 (ListView)

  • 데이터를 리스트 모양으로 보여주고 그중 하나를 선택하는 용도


🎨 갤러리(Gallery)

  • 사진첩 효과 (이미지를 배치하고 좌우로 스크롤하여 볼 수 있게 하는 기능)
  • 이미지 목록을 스크롤하는 기능만 존재
    → 이미지를 클릭했을 때 큰 이미지가 나타나게 하려면,
    java 코드를 추가로 작성해야 함
  • 그리드뷰와 비슷하지만 좀 더 부드럽고 고급스러운 느낌을 줌

✍🏻 영화 포스터 앱 만들기

1. xml에 갤러리와 이미지뷰 추가하기

  • 2행: 레이아웃안에 <Gallery />를 정의한다.
  • 6행: 갤러리에서 spacing="5dp"는 갤러리에 있는 이미지 간에 여백을 준다.

2. java 코드 수정하기 (1) Adapter 만들기

  • 7~8행: 11행에서 적용한 MyGalleryAdapter 변수를 생성하여 activity_main.xml의 갤러리에 적용한다.
  • 11~22행: BaseAdapter를 상속받는 MyGalleryAdapter를 정의한다.
  • 13~16행: 영화 포스터 파일의 아이디를 배열로 지정한다.
  • 21행: 자동 완성된 추상 메소드 4개가 들어간다.

3. java 코드 수정하기 (2) getCount()와 getView() 수정하기

  • 7행: 예제11-10 7행의 GridView를 Gallery로 수정한다.
    여기서 Gallery.LayoutParams(200,300)은 갤러리뷰에 나오는 이미지 크기를 200x300으로 나열해서 보여주겠다는 뜻이다.

4. java 코드 수정하기 (3) 갤러리의 영화를 클릭하면 아래쪽 이미지뷰에 포스터가 원래 크기로 보여지도록 함

  • 2~9행: 클릭리스너가 아닌 터치리스너로 사용한다.(주의)
  • 5행: .setScaleType(ImageView.ScaleType.FIT_CENTER)로 이미지뷰를 각 그리드뷰 칸의 중앙에 배치한다.
  • 6행: .setImageResource()로 이미지뷰에 영화포스터 1개를 적용한다.


🎨 스피너

  • PC의 드롭다운 박스와 비슷한 기능
  • 화면이 작은 스마트폰에서 여러 개 중 하나를 선택할 수 있도록 확장하는 용도로 사용

✍🏻 기본 예제

  • 11~14행: ArrayAdapter 형 변수를 선언한다.
    생성자의 두 번째 파라미터로 스피너의 형식(simple_spinner_item)을 선택하고, 세 번째 파라미터에는 적용할 배열(movie)을 지정한다. 스피너의 형식으로 simple_spinner_dropdown_item을 사용해도 된다.

0개의 댓글