-2

我有一个演示图片链接:

http://madhabpurps.org/wp-content/uploads/2013/04/28-239x300.jpg

我想在视图持有者类内的布局背景中设置图像:

static class ViewHolder {
    TextView txtName;
    TextView txtCityState;
    RelativeLayout rl;
}

holder.txtName.setText(searchArrayList.get(position).getTitle());
holder.txtCityState.setText(searchArrayList.get(position).getDescription());

我必须从此处的链接设置图像,我已经尝试了这行代码,但它显示错误。

holder.rl.setBackgroundResource(searchArrayList.get(position).getImage());
4

2 回答 2

0

我从这里得到答案change background image of Framelayout via URL

private Drawable ImageOperations(Context ctx, String url, String saveFilename) {
        try {
            InputStream is = (InputStream) this.fetch(url);
            Drawable d = Drawable.createFromStream(is, saveFilename);
            return d;
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    public Object fetch(String address) throws MalformedURLException,IOException {
        URL url = new URL(address);
        Object content = url.getContent();
        return content;
    }

然后你可以像这样使用它

Drawable drw = ImageOperations(this,url,filename)
rl.setBackgroundDrawable(drw);

这应该修复。但对于一般情况,我推荐另一种解决这些问题的方法。

我建议使用有据可查的图像下载和缓存库。我正在使用毕加索http://square.github.io/picasso/。设置它,使用库很容易。

然后你可以通过编写来填充图像视图

Picasso.with(activity)
 .load(url)
 .fit()
 .into(imageView);
于 2013-05-28T10:47:13.450 回答
0

使用下面的代码

Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(url).getContent());
Drawable d = new BitmapDrawable(getResources(),bitmap);
rl.setBackgroundDrawable(dr);
于 2013-05-28T11:24:07.553 回答