Android: 如何改变动作栏的“主页”图标为应用程序图标以外的东西?

我的应用程序的主图标由一个图像的两部分组成: 一个徽标和它下面的几个字母。这对于应用程序的启动器图标来说效果很好,但是当图标出现在 ActionBar 的左边缘时,字母被切断了,看起来就不好了。

我想为 ActionBar 提供一个单独的图标版本,只有“ logo”部分,下面没有字母,但到目前为止一直是空的。老实说,我找不到任何答案,我甚至找不到这个问题本身。

157570 次浏览

看看这个,应用程序图标都准备好了

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

update

我认为默认情况下,它使用你的启动器图标... 你最好的选择是创建一个单独的图像... 设计的动作栏和使用。支票: http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems

如果提供了清单的 android:logo属性,则 ActionBar 将使用该属性。这使您可以为图标(Launcher)和徽标(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 属性,或者通过编程方式设置绘图。

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

Update: Be warned however that the application icon will be overridden if you set the android:icon attribute on the launch Activity. The only work around I know of is to have a splash or dummy Activity which then launches your main Activity.

受 TheIT 的启发,我只是通过操作清单文件来实现这个功能,但是方式略有不同。在应用程序设置中设置图标,以便大多数活动获得该图标。在要显示徽标的活动上,将 android: logo 属性添加到活动声明中。在下面的示例中,只有 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>

希望这能帮到别人!

creating logo

在文件夹“ drawable-...”创建在他们所有的 logo.png。 The location of the folders: [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"
...

就是这样。

请试试这条线

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

Please Try, if use "extends AppCompatActivity" and present actionbar.

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