Android 使用自定义状态栏通知获取默认图标背景

Android 使用自定义状态栏通知获取默认图标背景,android,android-layout,Android,Android Layout,我目前正在创建一个自定义状态栏通知,通过事件通知用户进度。我的自定义通知工作正常,但有一个进度条需要我通过contentView字段将自己的一组RemoteView传递给通知 这很好,只是我希望能够将此布局基于默认布局。我的目标是API 10,因此它必须同时适用于姜饼和ICS。姜饼很好,因为我可以在布局的左侧放置一个图标,并且通知与其他默认通知相匹配。然而,在ICS中,通知图标的左侧都有一个带条纹的正方形,其中包含图标(它有效地形成了一个UI“句柄”,以帮助指示可以通过滑动来取消通知) 有人知道

我目前正在创建一个自定义状态栏通知,通过事件通知用户进度。我的自定义通知工作正常,但有一个进度条需要我通过contentView字段将自己的一组RemoteView传递给通知

这很好,只是我希望能够将此布局基于默认布局。我的目标是API 10,因此它必须同时适用于姜饼和ICS。姜饼很好,因为我可以在布局的左侧放置一个图标,并且通知与其他默认通知相匹配。然而,在ICS中,通知图标的左侧都有一个带条纹的正方形,其中包含图标(它有效地形成了一个UI“句柄”,以帮助指示可以通过滑动来取消通知)


有人知道我如何在代码中获取默认布局,然后对其进行编辑(RemoteView很难做到这一点),或者以某种方式访问默认布局视图(可能在运行时),然后复制它,用通知文本代替我的进度条?

我看到过一些例子,人们创建了通知并克隆了布局,但是要做任何有用的事情,你必须对布局有很多了解。我宁愿从你感兴趣的android版本中获取布局文件。你有一个JB,你应该不会有任何问题找到其他人

如果您想要自定义布局的唯一原因是获得进度条,您可以查看 . 这将比使用自定义通知布局更容易。如果您决定使用自定义布局,它们在API v14和API v17之间只发生了轻微的变化,我不知道它们在蜂巢中是什么样子的,但它们不太可能有太大的不同。这意味着,您应该能够在layout-v11文件夹中使用一个自定义通知布局,在默认的layout文件夹中使用一个自定义通知布局,并且您将捕获大多数情况(除了蜂巢向上的图标背景,我还没有在我自己的自定义通知中使用该部分),并且只需要维护两个不同的布局。有关默认布局的位置,请参见上面的答案;请注意,在早期版本的Android中,它被称为status_bar_latest_event_content.xml


由于setProgress()至少可以从Honeycomb上获得,而且它看起来也适用于早期版本(文档中没有其他说明),因此如果您没有任何其他自定义要求,您可能应该使用它。

感谢您的回复。拥有特定于API版本的代码是我的退路,看起来这就是我必须要做的。谷歌应用程序(播放和浏览器下载等)以某种方式做到了这一点,这是可能的。正如我所说的,我很肯定我看到过提取布局的例子,但你仍然需要知道布局来替换组件。对吗?是什么让你认为他们没有使用特定于平台的布局?这就是他们对操作栏图标/菜单图标和状态栏图标所做的。