我的应用程序的主图标在一张图片中由两部分组成:一个徽标和它下面的几个字母。这适用于应用程序的启动器图标,但是当图标出现在 ActionBar 的左边缘时,字母会被截断并且看起来不太好。
我想为 ActionBar 提供一个单独版本的图标,只有“徽标”部分而不是它下面的字母,但到目前为止一直是空的。老实说,我找不到任何答案,我什至无法在任何地方找到问题本身。
我的应用程序的主图标在一张图片中由两部分组成:一个徽标和它下面的几个字母。这适用于应用程序的启动器图标,但是当图标出现在 ActionBar 的左边缘时,字母会被截断并且看起来不太好。
我想为 ActionBar 提供一个单独版本的图标,只有“徽标”部分而不是它下面的字母,但到目前为止一直是空的。老实说,我找不到任何答案,我什至无法在任何地方找到问题本身。
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>
请试试这条线
getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);
如果您使用 AppCompat,在运行 Gingerbread (API 10) 或更低版本的设备上设置 ActionBar 图标的唯一方法是在清单中的每个 Activity 中设置 android:icon 属性或以编程方式设置可绘制对象。
<manifest>
<application>
...
<activity android:name="com.your.ActivityName"
...
android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
更新:但是请注意,如果您在启动 Activity 上设置 android:icon 属性,应用程序图标将被覆盖。我所知道的唯一解决方法是有一个启动或虚拟活动,然后启动你的主要活动。
受到 TheIT 的启发,我只是通过操作清单文件来实现这一点,但方式略有不同。在应用程序设置中设置图标,以便大多数活动获得图标。在要显示徽标的活动上,将 android:logo 属性添加到活动声明中。在下面的例子中,只有 LogoActivity 应该有 logo,而其他的将默认为 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>
希望这对其他人有所帮助!
请尝试,如果使用“扩展 AppCompatActivity”并呈现操作栏。
ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
eksinbar.setDisplayHomeAsUpEnabled(true);
eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}
创建徽标
在文件夹“ drawable-...
”中创建所有这些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
更新
我认为默认情况下它使用您的启动器图标...您最好的选择是创建一个单独的图像...专为操作栏设计并使用它。对于该检查:http: //developer.android.com/guide/topics/ui/actionbar.html#ActionItems