【问题标题】:Android Volley: Perform task after imageloadAndroid Volley:图像加载后执行任务
【发布时间】:2013-12-17 11:22:04
【问题描述】:

我正在使用 Volley Library 下载图像。我想在加载图像后更改 TextView 的文本。就像,在文本加载之前。并且在加载图像后,它应该更改为已加载。

NetworkImageView image = (NetworkImageView)findViewById(R.id.imageView1);
image.setDefaultImageResId(R.drawable.def);
image.setImageUrl(url, ImageUtil.getImageLoader(getApplicationContext()));

图像完全加载后如何监听或调用函数?

【问题讨论】:

  • 您是否尝试过继承NetworkImageView 并在图像加载时添加接口?
  • 什么是 imageView1?这是在哪里定义的?

标签: android android-volley networkimageview


【解决方案1】:

你可以试试下面的代码 sn-p..

ImageView image = ImageView.class.cast(layout.findViewById(R.id...));
    String url = "..."; // URL of the image

    mImageLoader.get(url, new ImageListener() {

                public void onErrorResponse(VolleyError arg0) {
                    image.setImageResource(R.drawable.icon_error); // set an error image if the download fails
                }

                public void onResponse(ImageContainer response, boolean arg1) {
                    if (response.getBitmap() != null) {
                        image.startAnimation(AnimationUtils.loadAnimation(container.getContext(), android.R.anim.fade_in));
                        image.setImageBitmap(response.getBitmap());
                    } else
                        image.setImageResource(R.drawable.icon_loading); // set the loading image while the download is in progress
                }
            });

您可以如下创建 mImageLoader 实例来实现缓存

mRequestQueue = Volley.newRequestQueue(context);
mImageLoader = new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() {
    private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10);
    public void putBitmap(String url, Bitmap bitmap) {
        mCache.put(url, bitmap);
    }
    public Bitmap getBitmap(String url) {
        return mCache.get(url);
    }
});'

【讨论】:

  • 它还会缓存图像吗?我也需要缓存图片
猜你喜欢
  • 2017-12-31
  • 1970-01-01
  • 2023-04-07
  • 2012-09-14
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2020-05-12
相关资源
最近更新 更多