Das Hauptsymbol meiner Anwendung besteht aus zwei Teilen in einem Bild: einem Logo und einigen Buchstaben darunter. Dies funktioniert gut für das Launcher-Symbol für die App, aber wenn das Symbol am linken Rand der ActionBar angezeigt wird, werden die Buchstaben abgeschnitten und es sieht nicht gut aus.
Ich möchte die ActionBar mit einer separaten Version des Symbols versehen, die nur den "Logo" -Teil und nicht die Buchstaben darunter enthält, die aber bisher leer waren. Ich kann ehrlich gesagt keine Antwort darauf finden, und ich kann die Frage selbst nirgendwo finden.
Die Aktionsleiste verwendet das Attribut Android: logo Ihres Manifests, sofern eines angegeben ist. Auf diese Weise können Sie separate Zeichenressourcen für das Symbol (Startprogramm) und das Logo (unter anderem ActionBar) verwenden.
In AndroidManifest.xml:
<application
Android:icon="@drawable/launcher"
Android:label="@string/app_name"
Android:name="com..."
Android:theme="@style/Theme">...</Application>
In styles.xml: (Siehe 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>
Bitte versuchen Sie diese Zeile
getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);
Wenn Sie AppCompat verwenden, können Sie das ActionBar-Symbol auf Geräten, auf denen Gingerbread (API 10) oder niedriger ausgeführt wird, nur festlegen, indem Sie das Android: icon-Attribut in jeder Aktivität in Ihrem Manifest festlegen oder das Drawable programmgesteuert festlegen.
<manifest>
<application>
...
<activity Android:name="com.your.ActivityName"
...
Android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
Update: Seien Sie jedoch gewarnt, dass das Anwendungssymbol überschrieben wird, wenn Sie das Android: icon-Attribut bei der Startaktivität festlegen. Die einzige mir bekannte Abhilfe besteht darin, eine Splash- oder Dummy-Aktivität durchzuführen, die dann Ihre Hauptaktivität startet.
Inspiriert von TheIT, habe ich dies durch Manipulieren der Manifest-Datei auf eine etwas andere Art und Weise zum Laufen gebracht. Stellen Sie das Symbol in der Anwendungseinstellung so ein, dass die meisten Aktivitäten das Symbol erhalten. Fügen Sie in der Aktivität, in der Sie das Logo anzeigen möchten, das Attribut Android: logo zur Aktivitätsdeklaration hinzu. Im folgenden Beispiel sollte nur LogoActivity das Logo haben, während die anderen standardmäßig das Symbol haben.
<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>
Hoffe das hilft jemand anderem raus!
logo erstellen
in Ordnern "drawable-...
"Erschaffe in allen von ihnen logo.png
. Der Speicherort der Ordner: [YOUR APP]\app\src\main\res
In AndroidManifest.xml Zeile hinzufügen: Android:logo="@drawable/logo"
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:logo="@drawable/logo"
...
das ist es.
Bitte versuchen Sie, wenn Sie "AppCompatActivity erweitern" und die Aktionsleiste anzeigen.
ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
eksinbar.setDisplayHomeAsUpEnabled(true);
eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}
Vielleicht möchten Sie dies überprüfen und haben alles, was Sie für Ihre App-Symbole benötigen
http://developer.Android.com/guide/practices/ui_guidelines/icon_design.html
update
Ich denke, standardmäßig wird Ihr Startsymbol verwendet. Am besten erstellen Sie ein separates Bild. Entwickelt für die Aktionsleiste und verwendet dieses. Für diesen Check: http://developer.Android.com/guide/topics/ui/actionbar.html#ActionItems