Ответ 1
ActionBar будет использовать атрибут android: logo вашего манифеста, если он предоставлен. Это позволяет использовать отдельные доступные ресурсы для значка (Launcher) и логотипа (ActionBar, между прочим).
Мой основной значок приложения состоит из двух частей на одном изображении: логотип и несколько букв под ним. Это хорошо работает для значка Launcher для приложения, но когда значок появляется на левом краю ActionBar, буквы обрезаются, и это выглядит не очень хорошо.
Я хотел бы предоставить ActionBar отдельную версию значка с только частью "логотипа", а не буквами под ним, но до сих пор они пустые. Я честно не могу найти ответа на этот вопрос, и я даже не могу найти этот вопрос нигде.
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>
Если вы используете AppCompat, единственный способ установить значок ActionBar на устройствах, на которых запущен Gingerbread (API 10) или ниже, - это установить атрибут android: значок в каждом действии в вашем манифесте или установить программный вариант.
<manifest>
<application>
...
<activity android:name="com.your.ActivityName"
...
android:icon="@drawable/ab_logo"/>
...
</application>
</manifest>
Обновление: будьте предупреждены, однако, что значок приложения будет переопределен, если вы установите атрибут android: icon в запуске Activity. Единственная работа, о которой я знаю, - это иметь всплеск или фиктивную активность, которая затем запускает вашу основную деятельность.
Вдохновленный TheIT, я просто получил это для работы, манипулируя файлом манифеста, но несколько иначе. Установите значок в настройке приложения так, чтобы большая часть активности получала значок. В действии, где вы хотите показать логотип, добавьте атрибут android: logo в объявление активности. В следующем примере только логотипActivity должен иметь логотип, а остальные по умолчанию - значок.
<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>
Надеюсь, это поможет кому-то еще!
Пожалуйста, попробуйте эту строку
getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_arrow);
создание логотипа
в папках "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"
...
что он.
Можете проверить это, получить все, что вам нужно для своих значков приложений
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
Обновление
Я думаю, что по умолчанию он использует ваш значок запуска... Лучше всего создать отдельный образ... Разработан для панели действий и с помощью этого. Для этой проверки: http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems
Попробуйте, если используется "extends AppCompatActivity" и присутствует панель действий.
ActionBar eksinbar=getSupportActionBar();
if (eksinbar != null) {
eksinbar.setDisplayHomeAsUpEnabled(true);
eksinbar.setHomeAsUpIndicator(R.mipmap.imagexxx);
}