如何在NotificationCompat.Builder.setLargeIcon()中加载Glide缓存的图像?

7

像这张图片,我想将通知的大图标设置为用户的个人资料缩略图,就像WhatsApp或其他聊天应用程序一样。

我尝试过:

 Glide.with(context)
            .asBitmap()
            .load(messageNotification.getLargeIcon())
            .into(new SimpleTarget<Bitmap>() {
                @Override
                public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
                   builder.setLargeIcon(resource);

                }
            });

但是它没有工作... 有帮助吗?

1个回答

7
如果你使用Glide设置了大图标,那么你还需要通过onResourceReady(resource, transition)通知NotificationManager。
.into(new SimpleTarget<Bitmap>() {
    @Override
    public void onResourceReady(Bitmap res, Transition<? super Bitmap> t) {
       builder.setLargeIcon(res);
       yourNotificationManager.notify(id, builder.build());

    }
});

这是因为glide使用后台线程来加载图像,所以在您的图像加载到构建器之前...通知管理器已经通知(主线程)构建器不具有大图像。

SimpleTarget已经被弃用了,是否有其他解决方案? - Vinit Poojary
1
@VinitPoojary 使用 CustomTarget<Bitmap> - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接