如何动态更新ActionBar MenuItem的图标以显示带数字的“红色徽章”?(概念上类似于“未读消息计数”)我在我的Android应用程序中使用ActionBarSherlock,目标API级别为10+。我的应用程序是用于移动数据捕获的,有时用户不能立即提交新数据,而必须将其保存在手机上(例如当连接质量较差时)。每当在手机上存储了“未提交”的项目时,我都希望向用户显示一个菜单项(在操作栏中),以便他们可以单击到UnsubmittedItems活动并手动触发上传。理想情况下,此菜单项将具有某些未提交项目数量的图形表示(类似于电子邮件或短信应用程序将未读消息数量显示为徽章)。目前,我只是执行以下操作:
这样做是可行的,但存在两个问题:我更喜欢使用图标并将标题设置为易懂的内容(例如,“未提交”),此外,我想在数字后面添加一些自定义布局或设计,例如红色圆形背景。
你有什么想法吗?到目前为止,我的研究表明有两种可能性:
1.使用预先创建好某个数字范围(例如1、2、3...10+)的级别列表可绘制对象,然后unsubmittedMenuItem.getIcon().setLevel( numUnsubmitted )。
2.完全动态地构建整个位图,使用位图和画布API。
这些方法类似,因为都要将文本呈现为位图(像第一种方法那样离线处理,或者像第二种方法那样实时处理),但如果可能的话,利用ActionBar的“本地”文本呈现并插入一个红色圆圈就像在TextView中一样会很好。
是否有一种方法可以仅为图标可绘制对象设置自定义布局?(不是完整的actionLayout,仅适用于图标?)
unsubmittedMenuItem.setTitle( Integer.toString(numUnsubmitted) );
这样做是可行的,但存在两个问题:我更喜欢使用图标并将标题设置为易懂的内容(例如,“未提交”),此外,我想在数字后面添加一些自定义布局或设计,例如红色圆形背景。
你有什么想法吗?到目前为止,我的研究表明有两种可能性:
1.使用预先创建好某个数字范围(例如1、2、3...10+)的级别列表可绘制对象,然后unsubmittedMenuItem.getIcon().setLevel( numUnsubmitted )。
2.完全动态地构建整个位图,使用位图和画布API。
这些方法类似,因为都要将文本呈现为位图(像第一种方法那样离线处理,或者像第二种方法那样实时处理),但如果可能的话,利用ActionBar的“本地”文本呈现并插入一个红色圆圈就像在TextView中一样会很好。
是否有一种方法可以仅为图标可绘制对象设置自定义布局?(不是完整的actionLayout,仅适用于图标?)