android - 在 Kotlin 中成功后的 Glide 回调

标签 android kotlin android-glide

   private SimpleTarget target = new SimpleTarget<Bitmap>() {  

    @Override
    public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
        // do something with the bitmap
        // for demonstration purposes, let's just set it to an ImageView
        imageView1.setImageBitmap( bitmap );
    }
};

private void loadImageSimpleTarget() {  
    Glide.with(context)
        .load(uri)
        .override(600, 600)
        .fitCenter()
        .into(target);
}

我尝试将其转换为 Kotlin,如下所示。

val finish_target = object : SimpleTarget<Bitmap>() {
                override fun onResourceReady(bitmap: Bitmap?, glideAnimation: GlideAnimation<in Bitmap>?) {
                    preview_image.setImageBitmap(bitmap)
                }
            }

        Glide.with(context)
                .load(uri)
                .override(600, 600)
                .fitCenter()
                .into(finish_target)

但是编译错误显示

public open fun <Y : Target<GlideDrawable!>!> into(target: (???..???)): (???..???) defined in com.bumptech.glide.DrawableRequestBuilder
public open fun into(view: ImageView!): Target<GlideDrawable!>! defined in com.bumptech.glide.DrawableRequestBuilder

请帮我解决这个问题。

最佳答案

 Glide.with(context)
        .load(url)
        .listener(object : RequestListener<Drawable> {
            override fun onLoadFailed(p0: GlideException?, p1: Any?, p2: Target<Drawable>?, p3: Boolean): Boolean {
                Log.e(TAG, "onLoadFailed")
                //do something if error loading
                return false
            }
            override fun onResourceReady(p0: Drawable?, p1: Any?, p2: Target<Drawable>?, p3: DataSource?, p4: Boolean): Boolean {
                Log.d(TAG, "OnResourceReady")
                //do something when picture already loaded
                return false
            }
        })
        .into(imgView)

使用 Glide,您可以将 Listener 添加到您的链中,用于监控图像加载的状态。你必须重写两个方法,在 onResourceReady 方法中你有你的图像已经加载的回调,你可以做一些事情,例如隐藏加载器或让从另一个 View 完成动画。 在 onLoadFailed 中,您会在加载时获得有关某些错误的信息,并且您可以以某种方式使用react。这样您就可以避免这些错误。

关于android - 在 Kotlin 中成功后的 Glide 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273955/

相关文章:

android - 我怎样才能从 Glide 中获得可绘制的?实际上我想从加载图像并放入 ImageView 的 Glide 中返回可绘制对象

java - Glide 使用 URL 从 firebase 加载图像速度非常慢

android - 无法使用 Glide 创建通知

android - 适用于手机的 Google Maps API 夜间主题

android - 启动 Intent 服务并关闭应用程序

Android:调用 GoogleApiClient.connect() 时出错

java - 如何使textview的一部分可编辑

android - SQLiteOpenHelper 和 CRUD 操作

android - ACCESS_COARSE_LOCATION android 权限问题

gradle - Kotlin Build on travis-CI 通过但没有运行测试