ActionBar菜单项的dynamic可绘制图标? (Android,ActionBarSherlock)

我如何dynamic更新ActionBar MenuItem的图标以显示一个数字的“红色徽章”? (在概念上类似于“未读消息计数”)

我在我的Android应用程序中使用ActionBarSherlock,目标是API级别10+。 我的应用程序是用于移动数据捕获的,有时用户不能立即提交新数据,但必须将其保存在本地电话上(例如连接不畅时)。

每当在手机上存储“未提交”的项目时,我想向用户显示一个菜单项(在操作栏中),以便他们可以点击“取消提交项目”活动并手动触发上传。

理想情况下 ,这个菜单项将有一些graphics表示的未提交项目的数量(类似于电子邮件或短信应用程序显示作为徽章的未读邮件的数量)。 目前,我只是在做:

unsubmittedMenuItem.setTitle( Integer.toString(numUnsubmitted) ); 

这个工作,但有两个问题:我更喜欢使用图标,并保持标题为可理解的(“未提交”),而且,我也想在这里有一些自定义的布局或devise,如红圈在数字后面的背景。

想想如何做到这一点? 到目前为止,我的研究表明两种可能

  1. 使用预先创build的一些数字范围(例如1,2,3 … 10+)的级别列表,然后unsubmittedMenuItem.getIcon()。setLevel(numUnsubmitted)
  2. 使用位图和canvasAPI完全dynamic地构build整个位图

这些都是类似的,我把文本渲染成一个位图(或者像#1一样离线,或者像#2一样),但是如果可能的话,利用ActionBar的“本地”文本渲染是非常好的在TextView中插入一个红色圆圈。

有没有一种方法来设置一个自定义的布局只是为了绘制图标? (不是一个完整的actionLayout,只是为了图标?)

Solutions Collecting From Web of "ActionBar菜单项的dynamic可绘制图标? (Android,ActionBarSherlock)"