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

SAK*_*han 5 android push-notification android-notification-bar android-glide

像这张图片一样,我正在尝试将通知大图标设置为用户个人资料缩略图,例如 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);

                }
            });
Run Code Online (Sandbox Code Playgroud)

但它不起作用..有帮助吗?

San*_*Sur 6

如果您使用 glide..the 设置大图标,您还应该通知 NotificationManager onResourceReady(resource, transition)

.into(new SimpleTarget<Bitmap>() {
    @Override
    public void onResourceReady(Bitmap res, Transition<? super Bitmap> t) {
       builder.setLargeIcon(res);
       yourNotificationManager.notify(id, builder.build());

    }
});
Run Code Online (Sandbox Code Playgroud)

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