Android에서 ListView 혹은 GridView를 쓸때 UI적으로 부하를 줄여주는 방법이다. 공식 홈페이지에서도 findViewById가 속도를 느리게 한다고 아래와 같이 사용하라고 권장한다.
공식 홈페이지에서의 예시는 아래와 같다. 누르면 해당 내용 메시지로 이동
static class ViewHolder {
TextView text;
TextView timestamp;
ImageView icon;
ProgressBar progress;
int position;
}
ViewHolder holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.listitem_image);
holder.text = (TextView) convertView.findViewById(R.id.listitem_text);
holder.timestamp = (TextView) convertView.findViewById(R.id.listitem_timestamp);
holder.progress = (ProgressBar) convertView.findViewById(R.id.progress_spinner);
convertView.setTag(holder);
직접 사용한 예시는 아래와 같다.
if (convertView == null) {
convertView = this.mInflater.inflate(R.layout.grid_view_image, null);
final ViewHolder holder = new ViewHolder();
holder.imageView = (ImageView)convertView.findViewById(R.id.list_view_image_imageView);
convertView.setTag(holder);
}//end if
final ViewHolder currentViewHolder = (ViewHolder) convertView.getTag();
ImageLoader.getInstance().displayImage(url, currentViewHolder.imageView);
'Development > Android' 카테고리의 다른 글
Duplicate files copied in APK META-INF/notice.txt (0) | 2015.07.14 |
---|---|
[Android] Xml파싱하기~! (0) | 2014.01.31 |
[Android Library] ViewPagerIndicator (0) | 2014.01.26 |
[Android Library] android-maps-extensions (0) | 2014.01.24 |
[Android] 라이브러리 충돌할때~!! 해결방법 (0) | 2014.01.24 |