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