public View getView
(int position,
View convertView, ViewGroup parent
) {
final ViewHolder holder;
if(convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_entry , null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById( R.id.title_text);
holder.image = (ImageView) convertView.findViewById(R.id.image_view);
holder.progressBar = (ProgressBar) convertView.findViewById( R.id.progress_bar);
convertView.setTag(holder);
}
else{
holder = (ViewHolder)convertView.getTag();
}
if( position == 4){
String imageUrl
= "http://w...content-available-to-author-only...m.cn/f/edu/077/18/0718_wall_09_lake_of_the_sun_1600.jpg";
if( imageCache.isCached( imageUrl) == false){//如果圖片沒有暫存下載圖片
imageCache.loadUrlPic(imageUrl,h);
}
else if ( imageCache.isDownloadFine(imageUrl) == true){//如果已經下載完成,就顯示圖片並把ProgressBar隱藏
holder.image.setImageBitmap(ImageCache.getImage(imageUrl));
holder.
progressBar.
setVisibility(View.
GONE); holder.
image.
setVisibility(View.
VISIBLE); }else{
//這裡是下載中,什麼事都不用做
}
}
else{
//沒圖就不用顯示Loading 的畫面
holder.
progressBar.
setVisibility(View.
GONE); }
//Declare: String[] titles = new String[100];
holder.title.setText( titles[position]);
return convertView;
}
class ViewHolder{
TextView title; // title
ImageView image; // show the image at position 4
ProgressBar progressBar; // for loading
}
ICAgIHB1YmxpYyBWaWV3IGdldFZpZXcoaW50IHBvc2l0aW9uLCBWaWV3IGNvbnZlcnRWaWV3LCBWaWV3R3JvdXAgcGFyZW50KSB7CgoJCWZpbmFsIFZpZXdIb2xkZXIgaG9sZGVyOwogICAgICAgIAoJCWlmKGNvbnZlcnRWaWV3ID09IG51bGwpIHsKCQkJY29udmVydFZpZXcgPSBsYXlvdXRJbmZsYXRlci5pbmZsYXRlKFIubGF5b3V0Lmxpc3RfZW50cnkgLCBudWxsKTsKCQkJaG9sZGVyID0gbmV3IFZpZXdIb2xkZXIoKTsKCQkJaG9sZGVyLnRpdGxlID0gKFRleHRWaWV3KSBjb252ZXJ0Vmlldy5maW5kVmlld0J5SWQoIFIuaWQudGl0bGVfdGV4dCk7CgkJCWhvbGRlci5pbWFnZSA9IChJbWFnZVZpZXcpIGNvbnZlcnRWaWV3LmZpbmRWaWV3QnlJZChSLmlkLmltYWdlX3ZpZXcpOwoJCQlob2xkZXIucHJvZ3Jlc3NCYXIgPSAoUHJvZ3Jlc3NCYXIpIGNvbnZlcnRWaWV3LmZpbmRWaWV3QnlJZCggUi5pZC5wcm9ncmVzc19iYXIpOwoJCQljb252ZXJ0Vmlldy5zZXRUYWcoaG9sZGVyKTsKCQl9CgkJZWxzZXsKCQkJaG9sZGVyID0gKFZpZXdIb2xkZXIpY29udmVydFZpZXcuZ2V0VGFnKCk7CgkJfQoKCQlpZiggcG9zaXRpb24gPT0gNCl7CgkJCVN0cmluZyBpbWFnZVVybCA9ICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubS5jbi9mL2VkdS8wNzcvMTgvMDcxOF93YWxsXzA5X2xha2Vfb2ZfdGhlX3N1bl8xNjAwLmpwZyI7CgkJCQogICAgICAgICAgICBpZiggaW1hZ2VDYWNoZS5pc0NhY2hlZCggaW1hZ2VVcmwpID09IGZhbHNlKXsvL+WmguaenOWclueJh+aykuacieaaq+WtmOS4i+i8ieWclueJhwoJCQkJaW1hZ2VDYWNoZS5sb2FkVXJsUGljKGltYWdlVXJsLGgpOwoJCQl9CgkJCWVsc2UgaWYgKCBpbWFnZUNhY2hlLmlzRG93bmxvYWRGaW5lKGltYWdlVXJsKSA9PSB0cnVlKXsvL+WmguaenOW3sue2k+S4i+i8ieWujOaIkO+8jOWwsemhr+ekuuWclueJh+S4puaKilByb2dyZXNzQmFy6Zqx6JePCgkJCQlob2xkZXIuaW1hZ2Uuc2V0SW1hZ2VCaXRtYXAoSW1hZ2VDYWNoZS5nZXRJbWFnZShpbWFnZVVybCkpOwoJCQkJaG9sZGVyLnByb2dyZXNzQmFyLnNldFZpc2liaWxpdHkoVmlldy5HT05FKTsKCQkJCWhvbGRlci5pbWFnZS5zZXRWaXNpYmlsaXR5KFZpZXcuVklTSUJMRSk7CQoJCQl9ZWxzZXsKCQkJCS8v6YCZ6KOh5piv5LiL6LyJ5Lit77yM5LuA6bq85LqL6YO95LiN55So5YGaCgkJCX0KCQl9CgkJZWxzZXsKCQkJLy/mspLlnJblsLHkuI3nlKjpoa/npLpMb2FkaW5nIOeahOeVq+mdogoJCQlob2xkZXIucHJvZ3Jlc3NCYXIuc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOwoJCX0KCQogICAgICAgIC8vRGVjbGFyZTogU3RyaW5nW10gdGl0bGVzID0gbmV3IFN0cmluZ1sxMDBdOwoJCWhvbGRlci50aXRsZS5zZXRUZXh0KCB0aXRsZXNbcG9zaXRpb25dKTsgICAKCgkJcmV0dXJuIGNvbnZlcnRWaWV3OwoJfQoKCWNsYXNzIFZpZXdIb2xkZXJ7CgkJVGV4dFZpZXcgdGl0bGU7ICAgICAgICAgICAvLyB0aXRsZQoJCUltYWdlVmlldyBpbWFnZTsgICAgICAgICAgLy8gc2hvdyB0aGUgaW1hZ2UgYXQgcG9zaXRpb24gNAoJCVByb2dyZXNzQmFyIHByb2dyZXNzQmFyOyAgLy8gZm9yIGxvYWRpbmcKCX0K