问题描述
|
我的应用程序的主图标在一个图像中包括两个部分:徽标和徽标下方的几个字母。这对于应用程序的启动器图标来说效果很好,但是当图标出现在ActionBar的左边缘时,字母会被截断并且看起来不太好。
我想为ActionBar提供一个单独的图标版本,仅带有\“ logo \”部分,而不是其下方的字母,但是到目前为止,它是空的。老实说,我找不到任何答案,我什至在任何地方都找不到问题本身。
解决方法
如果提供了清单,则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>
, 请尝试此行
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>
更新:但是请注意,如果在启动活动中设置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>
希望这可以帮助其他人!
, 创建徽标
在文件夹“drawable-...
\”中创建所有all7ѭ。
文件夹的位置:[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\"
...
而已。
, 如果使用\“扩展AppCompatActivity \”并显示操作栏,请尝试。
ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
eksinbar.setDisplayHomeAsUpEnabled(true);
eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}
, 可能想检查一下,获得了应用图标所需的一切
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
更新
我认为默认情况下,它使用启动器图标...最好的选择是创建一个单独的图像...专为操作栏设计并使用它。对于该检查:http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems