在 android 通知中显示带滑行的 GIF

Show GIF with glide in android notification

我一直在尝试使用 Glide 库在自定义通知中显示 .gif 图像。我只能在通知面板显示静态图片

    RemoteViews collapsedView = new RemoteViews(getPackageName(), R.layout.notification_collapsed);
    RemoteViews expandedView = new RemoteViews(getPackageName(), R.layout.notification_expanded);

    collapsedView.setTextViewText(R.id.text_view_collapsed_1,"Hello World!");


    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
            .setSmallIcon(R.drawable.ic_launcher_background)
            .setStyle(new NotificationCompat.DecoratedCustomViewStyle())
            .setCustomContentView(collapsedView)
            .setCustomBigContentView(expandedView);

    final Notification notification = mBuilder.build();


    notificationManager.notify(NOTIFICATION_ID,notification);

    notificationTarget = new NotificationTarget(
            getApplicationContext(),
            R.id.image_view_expanded,
            expandedView,
            notification,
            NOTIFICATION_ID
            );

    Glide.with(MainActivity.this)
            .asBitmap()
            .load(R.drawable.giphy)
            .into(notificationTarget);

可绘制对象是一个 .gif 文件。当通知弹出时,它会显示静态图像,因为我正在使用 .asBitmap()。我尝试使用

Glide.with(MainActivity.this)
            .asGif()
            .load(R.drawable.giphy)
            .into(notificationTarget);

但我收到一个错误 "Cannot resolve method 'into(NotificationTarget)'"。 我四处寻找解决方案,但找不到。 那么如何在 android 的通知面板中显示带有滑动的 GIF 文件?可能吗?

Android 不支持通知中的 GIF 和视频,因为通知是使用 RemoteViewsRemoteViews doesn't support GIF or Videos 构建的。

此外,Glide 维护者也回答了类似的问题here。我引用的是答案。

It doesn't look like RemoteViews supports setting a Drawable? https://developer.android.com/reference/android/widget/RemoteViews.html.

If there's a way to set an animated drawable in a notification in general, you can probably find a way to do it with a custom Target in Glide.

确实如此。 @Somesh Kumar 回答了你的问题。

你不能像他说的那样在你的通知中添加 GIF 或视频

事实上,我必须问你:你有没有在你的 phone 上看到任何正在播放视频或 GIF 的通知?

通知不适用于播放视频或 GIF,因为这会带来一些问题,例如更高的电池消耗。通知应该简单易懂。