有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我使用此代码从链接下载图像并将其设置为图像视图 但当我滚动列表视图并向后滚动到顶部时,图像开始下载并清除第一张下载的图片。 我尝试下载并将它们保存到数组位图中,然后显示它们,但我无法像数组列表一样更新数组位图并在列表视图中逐个显示,我能做什么

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) 个答案