下载并将位图设置为列表视图

时间:2016-05-17 10:41:25

标签: java android listview bitmap

我使用此代码从链接到图像视图下载和设置图像 但是当我滚动列表视图并滚动回到顶部时,图像开始下载并清除第一个下载的图片。 我试着下载并将它们保存到数组位图然后显示它们但我不能像数组列表一样更新数组位图并在列表视图中逐个显示它我该怎么办?

class aa extends ArrayAdapter<String> {
    public aa() {
        super(MainActivity.this, R.layout.home_row, IDS);

    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        LayoutInflater li = getLayoutInflater();
        View row = li.inflate(R.layout.home_row, parent, false);

        TextView name=(TextView)row.findViewById(R.id.home_row_name);

        ImageView pic=(ImageView)row.findViewById(R.id.home_row_pic);


        name.setText(arrayNAME.get(position).toString());

        new Download_image(bitmap_PIC,position,pic).execute(PIC[position]);


        return (row);

    }

}

以下是下载方法:

 class Download_image extends AsyncTask<String, Void, Bitmap> {
    Bitmap[] bitMap;
    int position;
    ImageView bmImage;


    public Download_image(Bitmap[] bitMap,int position,ImageView bmImage) {
        this.bitMap = bitMap;
        this.position = position;
        this.bmImage = bmImage;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
        bitMap[position]=result;
        bmImage.setImageBitmap(bitmap_PIC[position]);


    }
}

0 个答案:

没有答案