如何在通知中添加视图?

3
我想在媒体播放器的通知栏中添加一个图标。现在,当拖动通知栏时,我想添加一个视图,类似于四个按钮。
我该怎么做?
这个功能在Android的默认播放器中已经实现了。当用户退出屏幕时,播放器会在后台继续播放,并且当我们拖动通知时,有播放、暂停、下一曲和上一曲等功能。
1个回答

3
这可以通过使用RemoteView来实现。developer.android.com上的这篇文章解释得很好: http://developer.android.com/guide/topics/ui/notifiers/notifications.html 基本上,您可以通过检索在项目的布局文件夹中定义的布局并将其设置为通知的ContentView来创建RemoteView。以下是该网站的摘录:
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.notification_image);
contentView.setTextViewText(R.id.text, "Hello, this message is in a custom expanded view");
notification.contentView = contentView;

请注意,在您的情况下,MediaController可能会非常有用。也许您可以直接将其添加到此自定义视图中。虽然我从未尝试过。
更新 正如您所提到的,单击可能是一个问题,因为通知容器而不是其按钮对用户单击作出反应。可能的解决方案类似于Google在其联系人列表上处理单个项目上的点击的方式,您可以单击列表项最右侧的电话符号来直接开始电话呼叫,而不是打开联系人详细信息。 请查看此处的相应源代码: 您可以在那里看到一个DontPressWithParentImageView元素。您可以查看它的工作原理并像这样实现您的按钮。这可能有效。

谢谢Juri,但您能给我一个MediaController的链接吗?我可以添加一个视图,但整个通知都会获得焦点。我添加了两个按钮,但当单击事件在整个布局上时,即当我单击它时,视图被点击,按钮没有获得焦点。 - Hitendra
@Hitendra 只需点击我帖子中的“MediaController”,我已经将其链接到官方文档。我已更新我的帖子以解决点击问题。 - Juri
@Juri给了我一个建议。我使用RemoteView构建了一个通知大视图来控制播放/暂停,就像这个链接(stackoverflow.com/questions/14508369/…)所示。一切都没问题,但是当我点击设备的返回按钮并从应用程序退出后,点击事件(播放/暂停/前进/关闭)按钮就无法工作了。请帮助我。 - Helal Khan
我可以使用remote-view添加视图,但是当我点击它时,如何更新该视图,即音乐播放器应用程序通知我们可以播放和暂停音乐,当我们按下播放按钮时,它会更新为暂停图标,我该如何实现这个功能。 - Hitesh Dhamshaniya

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