私のアプリケーションのメインアイコンは、1つの画像の2つの部分で構成されています:ロゴとその下のいくつかの文字。これは、アプリのランチャーアイコンではうまく機能しますが、アイコンが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アイコンを設定する唯一の方法は、マニフェストのすべてのアクティビティでAndroid:icon属性を設定するか、プログラムで描画可能を設定することです。
<manifest>
<application>
...
<activity Android:name="com.your.ActivityName"
...
Android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
更新:ただし、起動アクティビティでAndroid:icon属性を設定すると、アプリケーションアイコンが上書きされることに注意してください。私が知っている唯一の回避策は、メインアクティビティを起動するスプラッシュまたはダミーアクティビティを持つことです。
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>
これが他の誰かの助けになることを願っています!
ロゴを作成する
フォルダー「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"
...
それでおしまい。
「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
update
デフォルトではランチャーアイコンを使用すると思います...最善の策は、別の画像を作成することです...アクションバー用に設計され、それを使用することです。そのチェックについて: http://developer.Android.com/guide/topics/ui/actionbar.html#ActionItems