Android画廊和异步加载

时间:2013-06-17 11:22:24

标签: android android-asynctask gallery

我正在尝试使用来自互联网的异步来加载图片。问题是图像不会更新。代码:

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView i ;
        i = new ImageView(this.mContext);
        AsycTask task =  new AsycTask();
        task.url = new URL(mImageIds.get(position));
        task.iv = i;
        task.execute(i);
    return i;
     }

     public class AsycTask extends AsyncTask<ImageView, Void, Bitmap>{
        public Bitmap bm2;
        public ImageView iv;
        public URL url;
        @Override
        protected Bitmap doInBackground(ImageView... arg0) {
            iv = arg0[0];
            try {
                bm2 = BitmapFactory.decodeStream((InputStream)url.getContent());

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return bm2;
        }

        @Override
        protected void onPostExecute(Bitmap result) {
             // iv.setImageResource(R.drawable.sw10)
             iv.setVisibility(View.VISIBLE);
             iv.setBackgroundResource(R.drawable.search);
             iv.setScaleType(ImageView.ScaleType.FIT_XY);
             iv.setImageBitmap(result);
        }

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected void onProgressUpdate(Void... values) {
        }
}

为什么在设置位图后图像没有更新? 我正在使用异步任务来更新我的图像,这可能吗?

1 个答案:

答案 0 :(得分:0)

尝试使用UnivsersalImageLoader lib,这将简化您的开发。 您的图像加载代码将是下一个:

ImageLoader.getInstance().displayImage(imageUrl, imageView); // Default options will be used

UniversalImageLoader