后面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);// 保存打開的異步線程
}
}
}
2016-01-08
嗯,這樣也不錯,但這樣邏輯沒有那個好。