24

I'm using the Toolbar (instead of ActionBar) via AppCompat. I'd like to replace the Toolbar's title (the app/actity name) with an icon, but I don't see how.

My icon is just text using a non-standard font, so I guess it might be allowed in Material Design.

DarkLeafyGreen
  • 69,338
  • 131
  • 383
  • 601
murrayc
  • 2,103
  • 4
  • 17
  • 32

3 Answers3

55

Use the following steps in your activity:

  1. Declare the Toolbar object:

    Toolbar toolbar = (Toolbar) findViewById(R.id.tool1);
    
  2. Set the support actionbar:

    setSupportActionBar(toolbar);   
    
  3. Remove title:

    getSupportActionBar().setDisplayShowTitleEnabled(false);
    
  4. Add your logo in drawable folder in:

    res/drawable.
    
  5. Add logo using this code:

    toolbar.setLogo(R.drawable.ic_launcher);
    
Javier C.
  • 7,859
  • 5
  • 41
  • 53
kunal.c
  • 2,739
  • 1
  • 18
  • 24
0

At styles.xml first make a style for action bar with no title and with the logo like that

<style name="ActionBar.NoTitle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="displayOptions">useLogo|showHome</item>
        <item name="logo">@drawable/ic_logo</item>
    </style>

Then create custome theme for your activity with new actionbar style

<!-- Create a style for MainActivity called AppTheme.Main that uses our custom ActionBar style -->

<style name="AppTheme.Main" parent="@style/AppTheme">
    <item name="actionBarStyle">@style/ActionBar.NoTitle</item>
</style>

Then go to manifest file under the specified activity set theme to AppTheme.Main

android:theme="@style/AppTheme.Main"

I wish that help everyone

wafaa hilmy
  • 61
  • 1
  • 3
-1

Here is the answer to a very similar question: Android Lollipop, add popup menu from title in toolbar

It comes down to using the Toolbar as a ViewGroup (LinearLayout is a ViewGroup too, for instance). The layout designer doesn't currently support that, but you can add a child node in the XML.

Then you need to call this to remove the standard title text: getSupportActionBar().setDisplayShowTitleEnabled(false);

Community
  • 1
  • 1
murrayc
  • 2,103
  • 4
  • 17
  • 32