如何使用库Volley在ImageView上设置Bitmap

时间:2014-09-11 14:04:12

标签: android bitmap android-volley

我正在尝试使用该库从我的服务器执行凌空下载图像。 在我的活动中,我动态添加项目,然后在运行时实现图像交换。

以下是尝试获取图片的代码:

public void updateThumbnails(ArrayList<Book> arrBook,ArrayList<View> arrView){
if(arrBook.size()<= 0){
    return;
}
if(arrView.size() <= 0){
    return;
}
int intBooks = arrView.size();
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
for(int intIndex = 0; intIndex < intBooks; intIndex++){
    View _view = arrView.get(intIndex);
    final View _viewLoader = _view;
    imageLoader.get(Const.START_REQUEST_BOOK_IMAGE + arrBook.get(intIndex).getId().toString() + ".jpg", new ImageLoader.ImageListener() {
        @Override
        public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {
            ImageView imgBook = (ImageView) _viewLoader.findViewById(R.id.img_book);
            animationChangeImage(imageContainer.getBitmap(),imgBook);
        }

        @Override
        public void onErrorResponse(VolleyError volleyError) {

        }
    });
    TextView txtTitleBook = (TextView) _view.findViewById(R.id.name_book);
    txtTitleBook.setVisibility(View.INVISIBLE);
}

}

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用ImageRequest类?例如:

ImageRequest irq = new ImageRequest(imgUrl, new Response.Listener<Bitmap>() {

    @Override
    public void onResponse(Bitmap response) {
        imView.setImageBitmap(response);

    }
}, 0, 0, null, null);

答案 1 :(得分:0)

在继续并分配之前,您需要检查返回的位图(imageContainer.getBitmap())是否为空。 尝试并添加日志打印,以查看是否收到错误或空位图,这可能意味着您执行了错误的请求或服务器错误,或者错误可能在animationChangeImage方法中位图已成功收到。