将android徽标放入操作栏时遇到问题

将android徽标放入操作栏时遇到问题,android,icons,Android,Icons,我想要的只是我在活动名称旁边的清单(ic_launcher.png)中指定的徽标。它显示为启动器的图标,但不在菜单中。我已经将徽标和图标属性指向清单中的这一个图像。我正在OnCreateOptionMenu中使用getMenuInflater()填充屏幕顶部的菜单。这一直运作良好。我对其进行了设置,以便用户可以单击并移动应用程序的不同活动。应用程序的名称将显示,但图标不在该栏中 我的清单上有标识: <application android:allowBackup="tru

我想要的只是我在活动名称旁边的清单(ic_launcher.png)中指定的徽标。它显示为启动器的图标,但不在菜单中。我已经将徽标和图标属性指向清单中的这一个图像。我正在OnCreateOptionMenu中使用getMenuInflater()填充屏幕顶部的菜单。这一直运作良好。我对其进行了设置,以便用户可以单击并移动应用程序的不同活动。应用程序的名称将显示,但图标不在该栏中

我的清单上有标识:

 <application
        android:allowBackup="true"
        android:logo="@mipmap/ic_launcher"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
它说:

使用徽标而不是图标

默认情况下,系统使用操作栏中的应用程序图标, 由或中的图标属性指定 元素。但是,如果还指定徽标属性,则 操作栏使用徽标图像而不是图标

我还尝试直接运行它,结果相同:

getActionBar().setDisplayUseLogoEnabled(true);
坠机事件:

Caused by: java.lang.NullPointerException
at .MainActivity.onCreate(MainActivity.java:33)
它指向了上述陈述

我还尝试:

getSupportActionBar().setDisplayUseLogoEnabled(true);
应用程序不会因此崩溃,但没有徽标

我有
主题.AppCompat.Light.darkaActionBar
作为我的应用主题,我相信这会带走我的图标

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

我正在扩展
ActionBarActivity
并对菜单进行充气
getMenuInflater()。充气(R.menu.menu\u main,menu)

我正在扩展ActionBarActivity。

android:logo=“@drawable/…”
添加到清单文件的应用程序部分

整个应用程序的徽标,以及活动的默认徽标


此属性必须设置为对包含图像的可绘制资源的引用(例如“@drawable/logo”)。没有默认徽标。

我还建议您在应用程序中使用android:icon=“@drawable/ic_launcher”。(尝试@drawable

如果不起作用,请尝试
getActionBar().setDisplayShowHomeEnabled(true)
(应该在
setContentView(R.layout.activity_main);
之前调用)

顺便说一句,如果你想为每个不同的活动指定一个图标,你也可以在活动中设置android:logo=“@drawable/YOUR_icon”

希望它能用

试试这个

<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@color/mainColor500</item>
    <item name="logo">@drawable/actionbar_logo</item>
    <item name="displayOptions">useLogo|showHome</item>
</style>

@颜色/主要颜色500
@可拉伸/actionbar_标志
useLogo | showHome

此问题很可能是因为您使用的是21.+或22.+版本的支持库。从棒棒糖开始,不鼓励在
ActionBar
中使用应用程序徽标,最新版本的支持库反映了这一变化

如果您仍然希望在
ActionBar
中使用app logo,您需要将
工具栏
视图添加到布局中(可以找到此视图的更多信息),并使用其
setLogo()
方法之一:或。

根据
mipmap
文件夹用于应用程序图标,但不要说应用程序logo也可以。因此,我认为您最好从drawable文件夹设置徽标:

<application
    android:allowBackup="true"
    android:logo="@drawable/ic_launcher"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


希望这有帮助

您的代码存在多个问题

因为您使用的是ActionBarActivity和AppCompat,所以您必须理解使用ActionBarActivity时它的确切含义

您尚未发布代码,因此不清楚您是在使用工具栏还是ActionBar(ActionBar已弃用,如果您仍在使用,则不应使用)

若你们已经在使用工具栏,那个么你们可以像这样设置图标

若你们并没有使用工具栏,那个么先在你们的主题中设置这些行

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>

<!-- following two lines -->
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
</style>

@颜色/原色
@颜色/原色/深色
@颜色/口音
真的
假的
然后在活动布局文件的顶部添加工具栏

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    >


发布您收到的错误是否使用appcompat-v7?哪个版本?请尝试使用getSupportActionBar()instead@SuperThomasLab是的。没有碰撞,但也没有徽标。@Mattia我使用的是Theme.AppCompat.Light.DarkActionBarOh等等,它必须是可绘制的吗?我在mipmap中有它。为什么是drawable而不是mipmap?也许它能用?看第一个不起作用。第二,程序崩溃。我在上面加了崩溃^。这也崩溃了。(我没有包括mainColor500)。如果我已经在扩展ActionBar并使用MenuInflator怎么办?@Munchshair好吧,如果您不想使用工具栏,一个选项是将targetSdkVersion&support libraries版本设置为19。您将再次看到您的徽标。但你的应用程序在棒棒糖设备上看起来会是全息风格的。如果你能解决这个问题,就把KitKat设备作为你应用程序的目标。这会出现在我正在使用的两个活动中,但只能在我的主要活动中单击(我在操作栏中有字符串作为快捷方式)。这不是我的其他活动。在这两个活动中都显示了什么?更新您的问题以解释问题。
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        toolbar.setLogo(R.drawable.icon_here);
    }
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>

<!-- following two lines -->
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
</style>
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    >