我想在媒体播放器的通知栏中添加一个图标。现在,在拖动通知栏时,我想添加四个按钮之类的 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/