[안드로이드 어플 개발 기초] Gallery (갤러리)
▣ 안드로이드 어플 개발 기초 Gallery |
■ Gallery는 가로로 스크롤을 하면서 아이템들을 탐색할 수 있는 "가로형 목록 객체" 라고 이해 하면 될것이니다. 이번에 만들어볼 예제 실행 화면인데요. 아래쪽에 보면 가로로 스크롤 되는 목록이 갤러리 입니다.
위쪽은 이미지뷰를 배치해서 아래쪽에서 가로로 스크롤 하다가 이미지를 터치하면 출력이 되도록 하고 있습니다.
■ 이번 예제에서는 그림처럼 갤러리를 아래쪽에 배치하고, 그림들은 따로 준비해서 리소스에 (drawable) 넣어 이것들을 목록으로 출력하도록 하고 있습니다.
■ 출력할 이미지를 네장 준비해서 파일 이름은 "t1~t4"로 저장해서 drawable폴더에 넣었습니다. 나중에 파일의 이름으로 이것들을 호출하게 될것입니다.
■ 화면에 출력할 xml파일을 살펴보겠습니다.
"RelativeLayout"에 이미지뷰를 위쪽, 갤러리를 아래쪽에 배치하고 있습니다. "android:layout_alignParentBottom"을 "true"로 설정하면 화면 하단에 배치가 됩니다. 이미지뷰의 "src"를 drawable 폴더에 등록했던 첫번째 사진("t1")으로 출력이 되도록 하고 있습니다.
■ 다음으로 gallery_item.xml파일을 만들고 갤러리에 매핑할 레이아웃에 대한 정의를 하도록 합니다.
이미지뷰를 배치하고 가로폭과 높이를 설정해주고, 양쪽 여백을 "5dp"로 설정하고 있습니다.
■ 이제 액티비티 파일을 작성도로고 하겠습니다.
⑴ 갤러리에 출력할 이미지를 List<Integer>에 기록하기 위해서 "galleryIda"객체를 선언하고 있습니다.
⑵ drawable 폴더의 "t?"라는 이미지를 찾아서 "galleryIda"객체에 for문을 이용해서 담고 있습니다. 그리고 이미지뷰를 찾아서 "final"로 선언하고 있으며, 이 객체가 선택한 이미지를 출력하게 됩니다.
⑶ 잠시후에 작성할 "galleryAdapter"클래스로 갤러리 어댑터를 설정하고, 이미지를 터치했을때 실행될 클릭 리스너를 정의하고, 선택된 이미지가 이미지뷰에 대입되어 출력하도록 하고, 첫 화면에는 첫번째 이미지가 출력이 되도록 하고 있습니다.
■ 다음은 어댑터 클래스를 작성하고, 아이템 레이아웃을 매핑하고, 해당 아이템에 데이터를 출력하는 구문을 작성하도록 하겠습니다.
⑴ 콘텍스트 객체와, 아이템 레이아웃을 매핑할때 사용하기 위해서 LayoutInflater를 선언하고, 생성자를 정의하고 있습니다. 생성자에서는 전달받은 콘텍스트를 mContext에 담고, LayoutInflater서비스를 호출하고 있습니다.
⑵ galleryIda 안에 있는 데이터의 숫자를 어댑터의 아이템 수로 정의하고, 아이템과 아이디를 호출할 메서드입니다.
⑶ gallery_item 파일을 레이아웃으로 정의하고, 그 파일안에 있는 이미지뷰를 호출해서 galleryIda 를 대입하고, 마지막으로 convertView를 리턴하고 있습니다.
■ 이 프로젝트를 실행시켜보면 첫화면에는 첫번째의 이미지가 출력되고, 갤러리를 가로로 스크롤 하다가 이미지를 터치하면 선택된 이미지가 위쪽의 이미지뷰에 출력이 되게 됩니다.