7

Как я могу изменить значок логотипа по умолчанию ActionBar как пользовательский образ? Как и на Whatsapp? Whatsapp custom image as logoПользовательское изображение вместо логотипа в ActionBar/ActionBarSherlock

+0

сделал вам найти решение .. Я же Requirment .. спасибо заранее – samirprogrammer

+0

я решить мою проблему, предоставляя настраиваемое представление для ActionBar. Взгляните на http://www.vogella.com/tutorials/AndroidActionBar/article.html. – Carlos

ответ

3

ActionBar использует атрибут android:logo вашего манифеста, если он предоставлен. Это позволяет использовать отдельные доступные ресурсы для значка (Launcher) и логотипа (ActionBar, между прочим).


Таким образом, вы должны добавить этот тег в манифест как ..

<application 
    android:logo="@drawable/custom_image" 

Update:

Вы можете использовать ActionBar.setLogo() для выполнения. Существуют две версии: setLogo(int resId) и setLogo(Drawable logo).

Прочтите Define custom Logo for ActionBar (different than Logo) in XML?, который поможет вам определить некоторые стили.

+0

Да. Я знаю об этом. Проблема заключается в том, что я хочу настроить собственный образ на этот значок. В whatsapp это изображение - изображение профиля друга (оно указано во время выполнения). – Carlos

+0

вы можете использовать 'ActionBar.setIcon (Drawable)' – chip

+0

@carlos .. вы нашли решение .. у меня есть одно и то же требование .. заранее заранее – samirprogrammer

0

Вам необходимо настроить ActionBarSherlock. Включите XML под названием «styles_mytheme.xml» в папке значений:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="Theme.Styled" parent="@style/Theme.Sherlock.Light"> 
     <item name="actionBarStyle">@style/CustomActionBarStyle</item> 
     <item name="android:actionBarStyle">@style/CustomActionBarStyle</item> 
     <item name="android:actionBarItemBackground">@drawable/overflow_selector</item> 
     <item name="android:itemBackground">@drawable/overflow_selector</item> 
     <item name="android:actionBarWidgetTheme">@style/CustomActionOverflowDropDownText</item> 
     <item name="actionBarWidgetTheme">@style/CustomTitleColorBar</item> 
     <item name="android:icon">@drawable/ic_nav_home_back</item> 
     <item name="android:homeAsUpIndicator">@drawable/ic_nav_back</item> 
     <item name="icon">@drawable/ic_nav_home_back</item> 
     <item name="dropDownListViewStyle">@style/DropDownStyles</item> 
     <item name="android:dropDownListViewStyle">@style/DropDownStyles</item> 
    </style> 

    <style name="CustomActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 

     <!-- define background for action bar (sets default for all parts of action bar - main, stacked, split) --> 
     <item name="android:background">@drawable/navigation</item> 
     <item name="background">@drawable/navigation</item> 
     <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
     <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    </style> 

    <!-- Style for the color title bar --> 
    <style name="CustomTitleColorBar" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textSize">12sp</item> 
    </style> 

    <style name="CustomActionOverflowDropDownText" parent="Widget"> 
     <item name="android:textColor">@color/white</item> 
    </style> 

    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/white</item> 
    </style> 

    <style name="My_Theme" parent="Theme.Sherlock"> 
     <item name="android:popupMenuStyle">@style/MyApp.PopupMenuStyle</item> 
     <item name="popupMenuStyle">@style/MyApp.PopupMenuStyle</item> 
    </style> 

    <style name="MyApp.PopupMenuStyle" parent="Widget.Sherlock.ListPopupWindow"> 
     <item name="android:popupBackground">@drawable/navigation</item> 
    </style> 

    <style name="DropDownStyles" parent="Widget.Sherlock.ListView.DropDown"> 
     <item name="android:divider">@null</item> 
     <item name="android:listSelector">@drawable/overflow_selector</item> 


    </style> 

</resources> 

Теперь включить этот XML в коде:

setTheme(Theme.Styled); 

Теперь изменить эти три линии, когда вы меняете эти три строки, значок изменится:

<item name="android:icon">@drawable/ic_nav_home_back</item> 
    <item name="android:homeAsUpIndicator">@drawable/ic_nav_back</item> 
    <item name="icon">@drawable/ic_nav_home_back</item> 
1

Самый простой способ заключается в использовании SetIcon (R.drawable.icon_name) Точно так же вы можете сделать с названием и вы также можете установить дату в панели действий субтитров.

ActionBar ab= getActionBar(); 
ab.setTitle("Aries"); 
ab.setSubtitle(dateFormat.format(date)); 
ab.setIcon(R.drawable.aries3d); 
0
if(getSupportActionBar() != null) { 
     getSupportActionBar().setDisplayUseLogoEnabled(true); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setIcon(R.drawable.add_contact); 
    } 
Смежные вопросы