私のアプリケーションのメインアイコンは、1つの画像の2つの部分で構成されています。ロゴとその下のいくつかの文字です。これは、アプリのランチャーアイコンには適していますが、アイコンがActionBarの左端に表示されると、文字が切り取られて見栄えがよくありません。
ActionBarにアイコンの別のバージョンを提供したいと思います。「ロゴ」部分のみで、その下の文字はありませんが、これまでのところ空になっています。正直なところ、これに対する答えは見つからず、質問自体もどこにも見つかりません。
私のアプリケーションのメインアイコンは、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>
android:logo
ます。マニフェストでを定義すると、他の領域にも影響を与える可能性があります。
andorid:icon
ものの、属性:developer.android.com/guide/topics/manifest/...
android:icon
、<activity>
要素に追加できると記載されているため、さまざまなアクティビティに合わせて簡単に変更できます。私はそれを試してみましたが、うまくいきました。カスタムテーマをいじったり、すべてのアクティビティに影響を与えたりする必要はありません。
この行を試してください
getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);
setHomeAsUpIndicator
Android API 18以降です。
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>
これが誰かを助けてくれることを願っています!
これをチェックしたいかもしれません、あなたはあなたのアプリアイコンに必要なすべてを手に入れました
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
更新
デフォルトではランチャーアイコンが使用されていると思います...別の画像を作成するのが最善です...アクションバー用に設計され、それを使用します。その確認のために:http : //developer.android.com/guide/topics/ui/actionbar.html#ActionItems