android - 如何向通知添加 View ?

标签 android

我想在媒体播放器的通知栏中添加一个图标。现在,在拖动通知栏时,我想添加四个按钮之类的 View 。
我该怎么做?

此功能在 android 的默认播放器中。当用户退出屏幕时,播放器会在后台继续播放,当我们拖动通知时,会有播放、暂停、下一首和上一首的功能。

最佳答案

这可以通过使用 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在你的情况下可能会派上用场。也许你可以直接将它添加到这个自定义 View 中。不过我从未尝试过。

更新
正如您所提到的,点击可能是一个问题,因为通知容器而不是它的按钮对用户点击使用react。一种可能的解决方案可能类似于 Google 如何处理对其联系人列表中单个项目的点击,您可以在其中单击列表项最右侧的电话符号以直接调用电话,而不是打开联系人详细信息.
在这里查看相应的源代码: http://www.google.com/codesearch/p?hl=en#J8HqCFe1rOo/src/com/android/contacts/ContactListItemView.java&q=Android%20ContactList&sa=N&cd=4&ct=rc

您会在那里看到一个 DontPressWithParentImageView 元素。你可以看看它是如何工作的,并像这样实现你的按钮。这可能有效。

关于android - 如何向通知添加 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000645/

相关文章:

java - 如何将文本链接设置为实际 URL 而不是 HTML 中的文本标记

java - Android 开发...应用程序结构新手

android - getResources().getColor() 已弃用

android - 初级安卓布局

android - 视频 View :Avoiding fullscreen black flash

java - 从服务类向 Sqlite 添加数据时 Recyclerview 不更新?

java - HashMap 有 key,但它的 containsKey 方法返回 false?

android - 错误 :In <declare-styleable> ConstraintSet

android - 如何在RelativeLayout中将ImageButton放置在ImageView上

android - Instant App 无法下载完整的应用程序 | Google Play 认为应用已安装