package cn.fanfan.detail.question; import java.util.ArrayList; import cn.fanfan.common.ImageGet; import cn.fanfan.main.R; import cn.fanfan.topic.imageload.FileUtils; import cn.fanfan.topic.imageload.ImageDownLoader; import cn.fanfan.topic.imageload.ImageDownLoader.onImageLoaderListener; import android.app.ActionBar; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.AbsListView; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import android.widget.AbsListView.OnScrollListener; import android.widget.ListView; public class AnswerList extends Activity { private boolean isFirstEnter; private int mFirstVisibleItem; private int mVisibleItemCount; private ArrayList<AnswerItem> arrayList; private ListView answerlist; private ImageDownLoader downLoader; private CommentAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.found_list); ActionBar actionBar = getActionBar(); actionBar.setIcon(null); actionBar.setTitle("�ش��б�"); actionBar.setDisplayUseLogoEnabled(false); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.show(); answerlist = (ListView) findViewById(R.id.content); arrayList = QuestionDetailActivity.getlist(); downLoader = new ImageDownLoader(this); isFirstEnter = true; answerlist.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { showImage(mFirstVisibleItem, mVisibleItemCount); } else { cancleTask(); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub mFirstVisibleItem = firstVisibleItem; mVisibleItemCount = visibleItemCount; // ���������Ϊ�״ν���������������� if (isFirstEnter && visibleItemCount > 0) { showImage(mFirstVisibleItem, mVisibleItemCount); isFirstEnter = false; } } }); if (arrayList != null && arrayList.size() != 0) { adapter = new CommentAdapter(arrayList, this); answerlist.setAdapter(adapter); } else { } } private void showImage(int firstVisibleItem, int visibleItemCount) { for (int i = firstVisibleItem; i < firstVisibleItem + visibleItemCount; i++) { final ArrayList<String> urls = arrayList.get(i).getUrls(); GridView gridView = (GridView) answerlist.findViewWithTag(arrayList .get(i).getAnswer_id() + "gridview"); if (urls != null && urls.size() > 0) { for (int j = 0; j < urls.size(); j++) { String url = urls.get(j); final ImageView imageView = (ImageView) gridView .findViewWithTag(url); final String path = FileUtils.SAVE_PATH + "/" + url.replaceAll("[^\\w]", ""); final ImageGet imageGet = new ImageGet(); downLoader.getBitmap(url, new onImageLoaderListener() { @Override public void onImageLoader(Bitmap bitmap, String url) { // TODO Auto-generated method stub imageView.setImageBitmap(imageGet.getBitmap(path)); } }); } } else { gridView.setVisibility(View.GONE); } } } public void cancleTask() { downLoader.cacelTask(); } public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case android.R.id.home: finish(); break; default: break; } return super.onOptionsItemSelected(item); } }