我的应用程序主图标由一个图标和它下面的几个字母组成。这对于应用程序的启动器图标非常好,但是当图标出现在ActionBar的左边缘时,字母会被切断,看起来不好看。
我想为ActionBar提供一个单独的版本的图标,只包含“logo”部分而没有下面的字母,但到目前为止我一无所获。老实说,我找不到任何答案,甚至找不到这个问题本身。
我的应用程序主图标由一个图标和它下面的几个字母组成。这对于应用程序的启动器图标非常好,但是当图标出现在ActionBar的左边缘时,字母会被切断,看起来不好看。
我想为ActionBar提供一个单独的版本的图标,只包含“logo”部分而没有下面的字母,但到目前为止我一无所获。老实说,我找不到任何答案,甚至找不到这个问题本身。
如果在 manifest 文件中提供了 android:logo 属性,则 ActionBar 将使用它。这使您可以为图标(启动器)和徽标(ActionBar 等)使用不同的 drawable 资源。
在 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
可能会影响其他区域。 - dbmandroid:icon
添加到 <activity>
元素中,这样您就可以轻松地为不同的活动更改它。我尝试了一下,效果很好。无需使用自定义主题或担心影响所有活动。 - Jasonandroid:logo
与支持库(AppCompat)不兼容。 - fikr4ngetSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);
setHomeAsUpIndicator
是 Android API 18+ 的功能。 - Joshua Pinter受 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>
如果您正在使用AppCompat,那么在运行Gingerbread(API 10)或更早版本的设备上设置ActionBar图标的唯一方法是在清单文件中的每个Activity中设置android:icon属性或通过编程方式设置drawable。
<manifest>
<application>
...
<activity android:name="com.your.ActivityName"
...
android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
请尝试使用“extends AppCompatActivity”并显示操作栏。
ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
eksinbar.setDisplayHomeAsUpEnabled(true);
eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}
创建标志
在文件夹 "drawable-...
" 中创建所有的logo.png
。
文件夹的位置: [你的应用]\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