Android - 如何在操作栏中显示应用程序图标

9
我的应用程序主题是Light。我是否可以在操作栏中显示应用程序图标,而不必将应用程序样式从Theme.Light更改为Theme.Holo.Light。
style.xml
<style name="AppBaseTheme" parent="android:Theme.Light">

AndroidManifest.xml

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

使用Theme.Light主题可以使得“EditText”等对象的样式更加优美,这就是为什么我不想改变它的原因。是否可以这样做还是我需要为每个对象编写样式并更改应用程序的主题。

4个回答

12

这对我来说在Theme.Light下有效。

android.support.v7.app.ActionBar menu = getSupportActionBar();
menu.setDisplayShowHomeEnabled(true);
menu.setLogo(R.drawable.ic_launcher);
menu.setDisplayUseLogoEnabled(true);

2
ActionBar使用来自清单文件的android:logo属性。然后使用setDisplayUseLogoEnabled()方法在ActionBar中设置它。

当我的应用程序主题为“Theme.Light”并且在onCreate函数中我编写getActionBar().setDisplayUseLogoEnabled(true); 应用程序崩溃了。我理解的对吗? - Anamnisis
你的代码是否可以在不进行任何标志相关设置的情况下使用操作栏? - Red Devil
如果我在主题中写入 <style name="AppBaseTheme" parent="android:Theme.Holo.Light">,它会显示标志,但是与我不想要的主题一起。在这种情况下,我也可以编写 getActionBar().setDisplayUseLogoEnabled(true)。我需要知道是否存在一种方法,在不更改 Theme.Light 主题为 Theme.Holo.Light 的情况下显示操作栏中的标志? - Anamnisis
有人知道如何在 Kotlin 中实现吗? - Louis Sankey

0

试试这样

 getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME |
                ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_HOME_AS_UP | 
                ActionBar.DISPLAY_USE_LOGO);
 getSupportActionBar().setIcon(R.drawable.search_icon);
 getSupportActionBar().setDisplayUseLogoEnabled(true);

0

这对我很有效:

//show the icon
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接