后面scrollview滚动停止加载的时候是不是可以不用这么麻烦
onscrollview停止的时候去加载图片是不是可以使用这种方法,代码保持与3-5课程结束时一致,只需把getview里面加载图片代码屏蔽,留下设置默认图片的方法。
然后onscrollview里面相关方法如下,也可以达到类似效果,逻辑更简单,代码简洁
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (SCROLL_STATE_IDLE == scrollState) {
// 滚动结束加载图片
loadImage();
} else {
// 如果是其他状态则取消异步线程
for (AsyncTaskGetImage task : lAsyncTask) {
task.cancel(false);
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
mStart = firstVisibleItem;
mEnd = firstVisibleItem + visibleItemCount;
if (!isScrolled && visibleItemCount > 0) {
loadImage();
isScrolled = true;
}
}
private void loadImage() {
String url = "";
AsyncTaskGetImage task = null;
for (int i = mStart; i < mEnd; i++) {
url = lData.get(i).getPicSmall();
ImageView iv = (ImageView) lv.findViewWithTag(url);// 通过tag标记来获取imageView;
if (null == iv) {
continue;
}
task = mImageLoader.getImageByAsyncTask(iv, url);
if (null != task) {
lAsyncTask.add(task);// 保存打开的异步线程
}
}
}