代码之家  ›  专栏  ›  技术社区  ›  Darren

可拉伸

  •  1
  • Darren  · 技术社区  · 6 年前

    我正在使用glide,一旦检索到图像,就会将其放入视图中,视图将被扩展,我在构造函数中使用以下代码。代码返回null。有没有办法等到它返回可提取文件?它在监听器中起作用,这就是为什么我问是否有一种方法可以等待,以便它可以在构造函数中。

    代码:

    滑翔:

    Glide
            .with(activity).asBitmap()
            .load(imageURL)
            .into(new SimpleTarget<Bitmap>(currentMap.getWidth(), currentMap.getHeight()) {
                @Override
                public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
    
                    currentMap.setUpMap()
                    });
    
                }
    

    可在视图中绘制:

    drawable = this.getDrawable();
    

    错误:

    Java语言lang.NullPointerException:尝试调用虚拟方法“int-android”。图样可抽出式。可抽出式。null对象引用上的getIntrinsicWidth()'

    1 回复  |  直到 5 年前
        1
  •  0
  •   Minas Mina    6 年前

    使用 RequestListener<String, GlideDrawable> 这为您提供了一个可绘制的:

    ( GlideDrawable 也是 Drawable ).

    Glide.with(activity)
        .load("...")
        .listener(object : RequestListener<String, GlideDrawable> {
            override fun onResourceReady(resource: GlideDrawable?, model: String?, target: Target<GlideDrawable>?, isFromMemoryCache: Boolean, isFirstResource: Boolean): Boolean {
    
                // GlideDrawable extends Drawable :)
            }
    
            override fun onException(e: Exception?, model: String?, target: Target<GlideDrawable>?, isFirstResource: Boolean): Boolean = false
        })
    

    您需要删除 asBitmap() 呼叫 我的代码是kotlin,因为我从我的项目中复制粘贴了它,但我相信您可以理解它。