我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。我想在选择 Holo Light 时使用深色图标。除了设置操作栏应用程序图标的部分外,其他所有操作都在该方法中完成。我尝试使用的代码是:
getActionBar();
ActionBar.setIcon(R.drawable.my_icon);
“这里没有这样的参考资料”是我得到的错误。这应该如何正确完成?
顺便说一句,我minSdkVersion
的14
Sherlock 没有动作吧。
我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。我想在选择 Holo Light 时使用深色图标。除了设置操作栏应用程序图标的部分外,其他所有操作都在该方法中完成。我尝试使用的代码是:
getActionBar();
ActionBar.setIcon(R.drawable.my_icon);
“这里没有这样的参考资料”是我得到的错误。这应该如何正确完成?
顺便说一句,我minSdkVersion
的14
Sherlock 没有动作吧。
getActionBar();
您正在将操作栏扔在那里。getActionBar()
返回 的实例ActionBar
,然后您需要调用setIcon()
它。像这样:
ActionBar actionBar = getActionBar();
actionBar.setIcon(R.drawable.my_icon);
虽然答案有点晚,但我认为它可能有用。
从活动内部: 对于 API 级别 14 或更高级别:
getActionBar().setIcon(R.drawable.my_icon);
对于较低的 API 级别,我们必须扩展 ActionBarActivity,然后:
getSupportActionBar().setIcon(R.drawable.my_icon);
从片段内部: 对于 API 级别 14 或更高级别:
getActivity().getActionBar().setIcon(R.drawable.my_icon);
对于较低的 API 级别,我们可以使用(活动必须扩展 ActionBarActivity):
((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);
在这两种情况下,我们都必须在设置图标或徽标之前调用 setDisplayShowHomeEnabled(true)。
((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);
我正在使用它,它对我有用。希望这对大家有帮助
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.icon);
现有的答案是非常正确的。然而,还有一个替代方案。一种最小的方法是使用
getActionBar().setIcon(R.drawable.my_icon);
Gets your work right away。:)
技术细节:由于 getActionBar() 默认返回一个对象,因此您可以直接操作它,而无需显式在范围内的对象中接收它。
您需要将要引用的可绘制对象添加drawable/
到res/
.
编辑:在您的 Android 安装文件夹中,有很多图片可供使用。你大概可以在那里找到它。
打电话给setIcon
我是不够的。
在此之前,我必须将显示从活动标志切换到活动图标:
actionBar.setDisplayUseLogoEnabled(false);
有关活动图标和徽标之间的区别,请参阅Android 图标与徽标。
尝试这个
setSupportActionBar(toolbar);
if (getSupportActionBar() != null)
getSupportActionBar().setIcon(R.drawable.your_icon);