以编程方式更改Android ActionBar中显示的徽标

Chr*_*ris 5 icons android image tablet android-actionbar

有没有办法更改ActionBar内部显示的徽标Activity而不是在清单中列出?

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

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

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

bdl*_*dls 12

在Jake提到的API 14 setIcon和setLogo方法的介绍之前,您似乎可以通过抓取视图android.R.id.home并设置新的drawable 来更改ActionBar徽标.

ImageView logo = (ImageView) findViewById(android.R.id.home);
logo.setImageDrawable(drawable);
Run Code Online (Sandbox Code Playgroud)


Jak*_*ton 10

API 14介绍setIcon和setLogo方法.

至于11到13,没有简单的方法.

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

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

  • 该属性并非旨在公开.哎呀.:) (3认同)