Android: Как изменить значок ActionBar "Home", чтобы быть чем-то другим, чем значок приложения?



главный значок моего приложения состоит из двух частей в одном изображении: логотип и несколько букв под ним. Это хорошо работает для значка запуска для приложения, но когда значок появляется на левом краю панели действий, буквы обрезаются, и это не выглядит хорошо.



Я хотел бы предоставить ActionBar с отдельной версией значка, только с частью "логотип", а не буквы под ним, но до сих пор были пустыми. Я честно не могу найти ответ это, и я даже не могу найти где сам вопрос.

603   8  

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

    Ничего не найдено.