ActionBar上没有应用程序图标

这里有很多关于添加图标到ActionBar的查询,但没有解决我的问题。 如果您知道这个问题的重复,请随时发表评论或closures此问题。

我将我的项目迁移到IntelliJ,并没有遇到与我以前的IDE(Eclipse)的这个问题。

问题:应用程序图标不显示在ActionBar中。

在这里输入图像说明

我认为这应该是默认添加,这就是为什么我不能通过它的XML添加它

在这里输入图像说明

这是它的XML

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" > <item android:id="@+id/action_settings" android:title="@string/action_settings" android:orderInCategory="100" app:showAsAction="always" /> </menu> 

谢谢!

Solutions Collecting From Web of "ActionBar上没有应用程序图标"

从AppCompat版本21开始,操作栏遵循材料devise指南并使用工具栏 :

  • 标题和副标题。 标题应该是工具栏在导航层次结构中的当前位置和其中包含的内容的路标。 字幕(如果存在的话)应指出关于当前内容的任何扩展信息。 如果应用程序使用徽标图像,应该强烈考虑省略标题和副标题。

在现代的Android用户界面中,开发人员应该更多地依赖工具栏视觉上不同的颜色scheme,而不是应用程序图标。 应用程序图标加标题作为标准布局的使用在API 21设备和更新版本上是不鼓励的。

但是,如果你想要一个应用程序图标, setLogo()是正确的方法。

用下面的代码更新你的onCreate()方法。

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.drawable.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); setContentView(R.layout.activity_main); } 

它为我工作。 注意:ic_launcher是你想要在你的操作栏中显示的图标,因为你将不得不在你的应用程序项目的可绘制文件夹中添加图标。

在Style.xml中

  <style name="MyTheme_ActionBar" parent="@style/Theme.AppCompat.Light"> <item name="icon">@drawable/actionbar_logo</item> </style> 

在活动中添加这个并尝试

 ActionBar mActionBar = getSupportActionBar(); mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); 

如果你不关心Material主题,并且有一个看起来更像JellyBean / Kitkat风格的活动,并且包含操作栏中的图标,则可以执行以下操作:

首先,从styles.xml更改主题设置:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

对此:

 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

现在将所有活动更改为从android.app.Activityinheritance而不是android.support.v7.app.ActionBarActivity。 那是:

改变这个:

 import android.support.v7.app.ActionBarActivity; public class MainActivity extends ActionBarActivity{ 

对此:

 import android.app.Activity; public class MainActivity extends Activity { 

完成上述两个步骤的结果是AndroidManifest.xml中的android:icon属性指定的图标将显示在操作栏中。

真的行。 试试这个..将这些行包含到你的onCreate方法中,

 ActionBar menu = getSupportActionBar(); menu.setDisplayShowHomeEnabled(true); menu.setIcon(R.mipmap.jerry); 

此外,请确保jerry是在mipmap文件夹下可用的.png图像文件。 要准确地在操作栏的开始处显示图标,请在mipmap文件夹中包含像(hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi等)的所有屏幕大小的jerry文件。