以编程方式更改Android操作栏中显示的徽标

时间:2011-11-22 21:09:49

标签: android image icons tablet android-actionbar

有没有办法更改ActionBarActivity内显示的徽标,而不是将其列在清单中?

我问的原因是我有一个手机应用程序,我在顶部构建了一个类似类型的栏,左侧的启动器图标使用ActionBar类似于ImageView

我还允许用户将该图像更改为手机或互联网上的图像。我目前正在使应用程序适用于平板电脑,并且只想使用ActionBar,但无法弄清楚如何根据用户更改图像。 ActionBar课程中没有方法,我找不到从资源修改图标或徽标的方法。

任何人都知道这是可能的还是可以建议一些我可以尝试的东西?

2 个答案:

答案 0 :(得分:12)

在Jake提及的setIconsetLogo方法的API 14中引入之前,您似乎可以通过抓取android.R.id.home的视图并设置来更改ActionBar徽标一个新的抽奖。

ImageView logo = (ImageView) findViewById(android.R.id.home);
logo.setImageDrawable(drawable);

答案 1 :(得分:10)

API 14引入了setIconsetLogo方法。

至于11到13,没有简单的方式。

您可以使用自定义导航并通过自己的布局模仿其功能来隐藏常规图标/徽标。

操作栏样式中有一个homeLayout属性,允许指定要使用的备用布局资源,但它总是抛出ClassCastException,因为它会在通胀时立即转换为内部类( bug #21842)。