Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将listview项目背景图像设置为可从web下载的drawable_Java_Android_Listview - Fatal编程技术网

Java 将listview项目背景图像设置为可从web下载的drawable

Java 将listview项目背景图像设置为可从web下载的drawable,java,android,listview,Java,Android,Listview,我正在从web下载一个图像,并试图将其设置为ListView适配器中膨胀列表元素的背景。这是我的方法(来自扩展类BaseAdapter: @Override public View getView(int i, View view, ViewGroup viewGroup) { //working with an object called "hl" if (view == null){ view = myInflater.inflate(R.layout.lis

我正在从web下载一个图像,并试图将其设置为ListView适配器中膨胀列表元素的背景。这是我的方法(来自扩展类
BaseAdapter

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    //working with an object called "hl"
    if (view == null){
        view = myInflater.inflate(R.layout.list_element, null);
    }

    Bitmap background = hl.getBgImage();
    Drawable dr = new BitmapDrawable(background);
    RelativeLayout rl = (RelativeLayout) view.findViewById(R.layout.headline_list);
    rl.setBackgroundDrawable(dr);
    return view;
}
但是,我在
rl.setBackgroundDrawable(dr);
行上得到一个NullPointerException。我添加图像的方式有问题吗?我获取位图的方法如下,堆栈跟踪从未调用,因此我假设它正在正确下载

private static Bitmap getBitmapFromURL(String imageUrl) {
    try {
        URL url = new URL(imageUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
谢谢你的建议

编辑:我正在调用
getBitmapFromUrl(String imageURL)

    String image = "http://www.google.com/trends/resources/2327917647-google-icon.png";
    Bitmap bg = getBitmapFromURL(image);
    Object hl = new Object(title, bg);
    objectList.add(hl);

发现问题。应该完全忽略相对值

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    //working with an object called "hl"
    if (view == null){
        view = myInflater.inflate(R.layout.headline_list, null);
    }

    Bitmap background = hl.getBgImage();
    Drawable dr = new BitmapDrawable(background);
    view.setBackgroundDrawable(dr);
    return view;
}
正如我所知,代码行“rl.setBackgroundDrawable(dr);”永远不会抛出NullPointerException,除非rl为null,即使dr为null。因此,请更新您的xml文件R.layout.list_元素,让我们一起查找问题。
祝你好运!

在你使用GetBitMapFromUrl的地方发布代码只是尝试将它放在一个imageview中,它工作了,所以问题不在于获取图像。它必须在适配器内。你能在发布以下代码的地方发布整个类吗?找到id为
headline\u list
的布局项是个问题吗?我解决了。不,是问题在于下一行,实际上是在相对布局上设置背景。我应该在视图上设置背景。我已经添加了解决方案作为答案。获取图像后,必须将位图图像保存到一个位置,以便下次加载(滚动后)。