티스토리 뷰
본 자료는 숭실대학교 정보통신전자공학부 소속 소모임 BlindC에서 3학년을 대상으로 하는 안드로이드 게임 프로그래밍 스터디 진행을 위하여 작성합니다.
개인의 소중한 창작물이기 때문에 자료의 열람은 자유이고, 소스코드를 긁어갈 수 있도록 우클릭제한이나 기타 제한은 걸어놓지 않았으나, 외부 공개나, 2차 수정등은 자제해주시길 부탁드리며 편의상 반말로 진행하도록 하겠습니다.
1. 개요
우리가 만약 많은양의 데이터, 100만개 정도 되는 데이터를 안드로이드 뷰를 통하여 보여줘야 한다고 가정해보자. (예를들어 사전과 같이)
이 데이터를 어떻게 보여주면 좋을까? 무식하게 100만개의 데이터가 있으니, 100만개의 텍스트뷰를 만들어서 보여줄 것인가? 당연히 아니다. 이렇게 코드를 짰을때 상당히 많은 자원이 낭비된다. 어차피 100만개의 텍스트뷰를 만들어서 메모리에 올려놓는다고 해도 한 화면에 전부 보여줄수 없다. 보여줄수 있는 것은 기껏해야 10개 정도? 이럴때 사용하는 것이 리스트뷰이다.
보여줄 수 있는 10개의 데이터만 로딩해서 메모리에 올려놓는다. 그리고 스크롤이 내려갈때 보이지 않게 되는 데이터는 메모리에서 지우고, 지운 만큼 새로운 데이터를 메모리에 올리는 식이다. 따라서 데이터 10개만 메모리에 올려놓을 수 있어도 100만개가 되는 데이터를 관리할 수 있게 된다.
그림으로 표현하자면 대략적으로 위와 같다고 할 수 있다.
<activity_main.xml>
1 2 3 4 5 6 7 | <ListView android:id="@+id/list" android:layout_below="@id/base" android:background="#ffff00" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> | cs |
1 2 | ListView lv = (ListView) findViewById(R.id.list); lv.setAdapter(mAdapter); | cs |
위와같이 코드로 간단하게 표현이 가능하다.
그런데 기존에 100만개의 데이터가 있다고 했을때, 이 데이터를 리스트뷰에 적용해서 곧바로 사용할 수 있을까?
이번 포스트에서는 리스트뷰에 대한 개요와 동작원리에 대해서 간단하게 알아 보았다. 다음 포스트에서 많은 양의 데이터를 리스트뷰에 적용하는 방법에 대해서 배워보겠다.
'안드로이드' 카테고리의 다른 글
[안드로이드] 텍스트에 그림자 넣기 + Error:(74, 31) Dimension types not allowed (0) | 2017.01.31 |
---|---|
안드로이드 : 리스트 뷰(ListView)와 어댑터 패턴(Adapter)에 대한 기초 개념정리 2 (0) | 2016.09.16 |
안드로이드 스마트폰 루팅 2 : 루팅하는법(Kingo root 사용법) (5) | 2016.03.04 |
안드로이드 스마트폰 루팅 1 : 루팅! 알고하자 (0) | 2016.03.01 |
LG 옵티머스 전기종 공장초기화 방법 (0) | 2016.02.29 |
- Total
- Today
- Yesterday
- 쓰레드
- 안드로이드
- 파이썬
- 파일
- 자료구조
- 액터
- 리눅스
- 디렉터리
- 소켓 프로그래밍
- 데이터베이스
- socket
- 유즈케이스
- 클래스
- 정렬
- UML
- MFC
- 프로세스
- 클라이언트
- 스레드
- 티라노 시그널
- 터미널
- 라즈베리파이
- C++
- Sort
- C
- 소켓
- 파이썬예제
- 티그널
- 악보
- C/C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |