Answers:
如果提供了清单,则ActionBar将使用清单的android:logo属性。这样一来,您就可以为图标(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>
android:logo
在清单中进行定义也可能会影响其他区域。
andorid:icon
属性,虽然:developer.android.com/guide/topics/manifest/...
如果您使用的是AppCompat,则在运行Gingerbread(API 10)或更低版本的设备上设置ActionBar图标的唯一方法是在清单中的每个Activity中设置android:icon属性,或以编程方式设置可绘制对象。
<manifest>
<application>
...
<activity android:name="com.your.ActivityName"
...
android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
更新:但是请注意,如果在启动活动中设置android:icon属性,则应用程序图标将被覆盖。我所知道的唯一解决方法是进行启动或虚拟活动,然后启动您的主活动。
受TheIT的启发,我只是通过操作清单文件而使它工作,但方式略有不同。在应用程序设置中设置图标,以便大多数活动都可以获取图标。在要显示徽标的活动上,将android:logo属性添加到活动声明中。在下面的示例中,只有LogoActivity应该具有徽标,而其他徽标将默认为icon。
<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>
希望这可以帮助其他人!
可能想检查一下,获得了应用图标所需的一切
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
更新
我认为默认情况下,它使用您的启动器图标...最好的选择是创建一个单独的图像...专为操作栏设计并使用它。对于该检查:http : //developer.android.com/guide/topics/ui/actionbar.html#ActionItems