Android: Как изменить значок ActionBar "Home", чтобы быть чем-то другим, чем значок приложения?
главный значок моего приложения состоит из двух частей в одном изображении: логотип и несколько букв под ним. Это хорошо работает для значка запуска для приложения, но когда значок появляется на левом краю панели действий, буквы обрезаются, и это не выглядит хорошо.
Я хотел бы предоставить ActionBar с отдельной версией значка, только с частью "логотип", а не буквы под ним, но до сих пор были пустыми. Я честно не могу найти ответ это, и я даже не могу найти где сам вопрос.
8 ответов:
панель действий будет использовать android: логотип атрибут вашего манифеста, если таковой имеется. Это позволяет использовать отдельные привлекаемые ресурсы для значка (Launcher) и логотипа (ActionBar, среди прочего).
В AndroidManifest.XML-код:
<application android:icon="@drawable/launcher" android:label="@string/app_name" android:name="com..." android:theme="@style/Theme">...</Application>в стилях.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) или ниже-это установить атрибут android:icon в каждом действии в манифесте или установить рисование программно.
<manifest> <application> ... <activity android:name="com.your.ActivityName" ... android:icon="@drawable/ab_logo"/> ... </application> </manifest>Update:однако имейте в виду, что значок приложения будет переопределен, если вы установите атрибут 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" ...вот именно.
пожалуйста, попробуйте, если используется "extends AppCompatActivity" и присутствует actionbar.
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
Comments