ProgramCodePav
@ProgramCodePav
Front-end developer. Love open source

Как отобразить логотип приложения в actionbar android?

778782135d1946e2bb938541209a0a52.jpg10b545cf9e4c42269b795452ad9ebe88.jpg

Как видите на первом скине, логотип подгружается в манифест, но что-то ломается в стилях.

manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ex.p.thehackernewswallpaper" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/thn"
        android:label="@string/app_shortname"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".HomeActivity"
            android:label="@string/app_shortname"
            android:uiOptions="splitActionBarWhenNarrow">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>


themes.xml
<resources>

    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MainActionBarStyle</item>
        <item name="actionBarStyle">@style/MainActionBarStyle</item>
    </style>

    <style name="MainActionBarStyle"
        parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/HackNewsDarkBlue</item>
        <item name="background">@color/HackNewsDarkBlue</item>
        <item name="android:icon">@drawable/thn</item>  <!-- не уверен насчет этого, все равно не работает -->
        <item name="icon">@drawable/thn</item>
    </style>
</resources>


Проблема решается, когда я использую стили не из support library (не Appcompat + префикс android:). Однако в приложении и в активностях используется support library, поэтому приложение выдает крит. ошибку (но на фоне видно, что лого подгрузилось).

Неужели нельзя вывести логотип в actionbar с Appcompat темой?

PS: вдогонку задам еще один вопрос:
Если создать с нуля приложение и сразу запустить на железке, все равно логотипа не видно, но в превьюшке рендерит с логотипом. То есть получается, что рендер превью отличается от реальной картины, почему?
  • Вопрос задан
  • 2854 просмотра
Решения вопроса 2
anyd3v
@anyd3v
getSupportActionBar().setDisplayShowHomeEnabled(true); установлен?
Ответ написан
mbelskiy
@mbelskiy
Software Developer
Решение с помощью xml:
<item name="logo">@drawable/ic_launcher_</item>
<item name="displayOptions">useLogo|showHome|showTitle</item>


Выставляется для стиля определяющего actionBarStyle.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы