【问题标题】:Glide : load url as bitmap not workingGlide:加载 url 作为位图不起作用
【发布时间】:2020-04-07 16:42:09
【问题描述】:

我想使用 Glide 从服务器加载位图。如果成功,则将其放入我的 ImageView 中,然后将其添加到我的 ArrayList 中。如果失败(网址损坏、没有互联网等),则将 ImageView 设置为我的默认图像。但是 Glide 的监听器根本不工作,LogCat 也根本不显示“onException”和“onResourceReady”。我的代码有什么问题?

Glide.with(activity.getApplicationContext())
        .load(MainActivity.URL_SERVER + "/asset/" + imageUrl.getString(i))
        .signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
        .listener(new RequestListener<String, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                ivImage.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.noimage));
                return false;
            }
            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                ivImage.setImageDrawable(resource);
                imageLoadedBitmap.add(((GlideBitmapDrawable) resource).getBitmap());
                return false;
            }
        });

【问题讨论】:

标签: android android-glide


【解决方案1】:

到目前为止,该方法链中的任何内容实际上都不会触发图像加载操作。您可以在最后使用 .into(ivImage) 并仅使用侦听器将位图添加到数组中。或者您可以使用.preload() 进行更多定制。另外,使用.error(R.drawable.noimage) 获取错误图像。

不过,将位图存储在数组中看起来是个坏主意。如果您要在列表中加载图像,请将 glide 调用放入适配器中,让 glide 自行处理。

【讨论】:

    【解决方案2】:

    只需在适配器中使用这行代码:

    Glide.with(context).load(url).error(R.drawable.noimage).centerCrop().crossFade().into(ivImage);
    

    【讨论】:

    • 如何将加载的位图添加到我的ArrayList?
    【解决方案3】:

    在图像加载之前,您可以添加默认占位符。

    Glide.with(getActivity()) 
      load(backgroundImage).placeholder(R.drawable.no_images); 
    

    您也可以在 error 标签中加载图片失败时添加不同的占位符。

    Glide.with(getActivity()).load(backgroundImage).placeholder(R.drawable.no_images).error(R.drawable.no_images);
    

    【讨论】:

    • 如何将位图添加到ArrayList中
    • 在 Glide 中使用 SimpleTarget 类,它会返回位图格式的图像。
    猜你喜欢
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多