Android:如何将ActionBar“Home”图标更改为应用程序图标以外的其他内容?

我的应用程序的主图标由两个部分组成:一个图标和一个下面的几个字母。 这适用于应用程序的启动器图标,但是当图标出现在ActionBar的左边缘时,这些字母被切断,看起来不太好。

我想为ActionBar提供一个单独的图标版本,只有“标识”部分,而不是下面的字母,但到目前为止已经空了。 我真的找不到任何答案,我什至不能find问题本身。

如果提供的话,ActionBar将使用清单的android:logo属性。 这可以让你使用单独的可绘制资源的图标(启动器)和标志(ActionBar,等等)。

在AndroidManifest.xml中:

<application android:icon="@drawable/launcher" android:label="@string/app_name" android:name="com..." android:theme="@style/Theme">...</Application> 

在styles.xml中:(请参阅android:icon

 <style name="Theme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBar</item> </style> <style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:icon">@drawable/icon</item> </style> 

如果您使用AppCompat,在运行Gingerbread(API 10)或更低版本的设备上设置ActionBar图标的唯一方法是在清单中的每个Activity中设置android:icon属性或以编程方式设置drawable。

 <manifest> <application> ... <activity android:name="com.your.ActivityName" ... android:icon="@drawable/ab_logo"/> ... </application> </manifest> 

更新:不过,如果在启动Activity上设置了android:icon属性,应用程序图标将被覆盖。 我所知道的唯一的工作是有一个飞溅或虚拟的活动,然后启动您的主要活动。

受到TheIT的启发,我只是通过操作清单文件而以一种稍微不同的方式得到了这个工作。 在应用程序设置中设置图标,以便大部分活动获得图标。 在要显示徽标的活动中,将android:徽标属性添加到活动声明中。 在以下示例中,只有LogoActivity应具有徽标,而其他徽标默认为图标。

 <application android:name="com.your.app" android:icon="@drawable/your_icon" android:label="@string/app_name"> <activity android:name="com.your.app.LogoActivity" android:logo="@drawable/your_logo" android:label="Logo Activity" > <activity android:name="com.your.app.IconActivity1" android:label="Icon Activity 1" > <activity android:name="com.your.app.IconActivity2" android:label="Icon Activity 2" > </application> 

希望这可以帮助别人!

请尝试这一行

 getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow); 

创造标志

在文件夹“ drawable-... ”中创build所有的logo.png 。 文件夹的位置: [YOUR APP]\app\src\main\res

在AndroidManifest.xml中添加行: android:logo="@drawable/logo"

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:logo="@drawable/logo" ... 

而已。

可能想检查这个,得到你的应用程序图标所需的一切

http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

更新

我想默认情况下它使用你的启动器图标…你最好的select是创build一个单独的图像…专为操作栏和使用。 对于检查: http : //developer.android.com/guide/topics/ui/actionbar.html#ActionItems

请尝试,如果使用“扩展AppCompatActivity”和目前的操作栏。

  ActionBar eksinbar=getSupportActionBar(); if (eksinbar != null) { eksinbar.setDisplayHomeAsUpEnabled(true); eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx); }