Android ActionBar/ActionBarSherlock中的自定义图像而不是徽标

Android ActionBar/ActionBarSherlock中的自定义图像而不是徽标,android,image,android-actionbar,actionbarsherlock,graphical-logo,Android,Image,Android Actionbar,Actionbarsherlock,Graphical Logo,如何将ActionBar的默认徽标图标更改为自定义图像?与Whatsapp上的工作原理类似 如果提供了清单属性,ActionBar将使用清单属性。这使您可以为图标(Launcher)和徽标(ActionBar等)使用单独的可绘制资源 因此,您应该将此标记添加到清单中,如 <application android:logo="@drawable/custom_image" 和 阅读这篇文章,也可以帮助你定义一些样式 您需要自定义ActionBarSherlock。在values文

如何将ActionBar的默认徽标图标更改为自定义图像?与Whatsapp上的工作原理类似

如果提供了清单属性,ActionBar将使用清单属性。这使您可以为图标(Launcher)和徽标(ActionBar等)使用单独的可绘制资源


因此,您应该将此标记添加到清单中,如

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


阅读这篇文章,也可以帮助你定义一些样式

您需要自定义ActionBarSherlock。在values文件夹中包含一个名为“styles\u mytheme.xml”的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>
现在更改这三行,当您更改这三行时,图标将更改:

  <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>
@drawable/ic\u nav\u home\u back
@可抽出式/集成电路导航背面
@可抽出式/集成电路导航回家

最简单的方法是使用setIcon(R.drawable.icon\u name),类似地,您可以处理标题,也可以在操作栏字幕中设置日期

ActionBar ab= getActionBar();
ab.setTitle("Aries");
ab.setSubtitle(dateFormat.format(date));
ab.setIcon(R.drawable.aries3d);

对我知道这一点。问题是我想为该图标设置一个自定义图像。在whatsapp中,该图像是朋友的个人资料图片(在运行时指定)。您可以使用
ActionBar.setIcon(可绘制)
@carlos。。你找到解决办法了吗。。我有同样的要求。。提前谢谢它不起作用,我不知道为什么。我试过了everything@FaizanMubasher什么不起作用?你能用你的代码单独问一个问题吗?你找到解决办法了吗。。我有同样的要求。。提前感谢我通过提供ActionBar的自定义视图解决了我的问题。看一看。
ActionBar ab= getActionBar();
ab.setTitle("Aries");
ab.setSubtitle(dateFormat.format(date));
ab.setIcon(R.drawable.aries3d);
if(getSupportActionBar() != null) {
        getSupportActionBar().setDisplayUseLogoEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setIcon(R.drawable.add_contact);
    }