android - Volley 的 NetworkImageView - setImageBitmap 方法不起作用

标签 android android-volley

我在我的项目中使用 volley 库。

我通常让 NetworkImageView 使用 setImageUrl 方法下载图片:

networkImageView.setImageUrl(imageUrl, mImageLoader)

这很好,但是..当我尝试使用 ImageLoader 的 get 方法“手动”下载位图,然后自己设置位图时,它不起作用:

mImageLoader.get(imageUrl,new ImageLoader.ImageListener()
    {
        @Override
        public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b)
        {
            if (imageContainer.getBitmap() != null)
            {
                networkImageView.setImageBitmap(imageContainer.getBitmap());
            }
        }

        @Override
        public void onErrorResponse(VolleyError volleyError)
        {

        }
    });

networkImageView.setImageBitmap(imageContainer.getBitmap()) 行什么都不做。

怎么可能? 提前致谢!

最佳答案

这个版本的NetworkImageView修复了这个问题。

public class CustomNetworkImageView extends NetworkImageView {

    private Bitmap  mLocalBitmap;

    private boolean mShowLocal;

    public void setLocalImageBitmap(Bitmap bitmap) {
        if (bitmap != null) {
            mShowLocal = true;
        }
        this.mLocalBitmap = bitmap;
        requestLayout();
    }

    @Override
    public void setImageUrl(String url, ImageLoader imageLoader) {
        mShowLocal = false;
        super.setImageUrl(url, imageLoader);
    }

    public CustomNetworkImageView(Context context) {
        this(context, null);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {

    super.onLayout(changed, left, top, right, bottom);
    if (mShowLocal) {
            setImageBitmap(mLocalBitmap);
        }
    }

}

关于android - Volley 的 NetworkImageView - setImageBitmap 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21270152/

相关文章:

java - 登录参数不使用 Volley 通过 REST 发布

php - 使用 volley 和 php 在 android 中发布 utf8(波斯语或阿拉伯语)

android - 如何让我的应用程序在 android 中支持平板电脑?

android - 是否存在 Android 游戏中心?

android - 如何在没有嵌套 ScrollView 的情况下实现新 Material gmail 工具栏?

Android - Relative_to_Parent 对比。相对于自己

android - 如何使用 volley android 将图像上传到 MVC api post 方法?

java - 解析没有名称的json数组

android - 将数据发布到 MVC Web Api 时 Volley 库无法工作

android - 可扩展 ListView android,设置自定义可绘制对象