21

I am following this example to create my app now i am trying to add image in my toolbar the but image is not displaying,i am trying to set my app logo,following is my code and toolbar xml can any one tell me what is mistake?

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    local:theme="@style/MyMaterialTheme.Base"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/toolbartitle"
        />

    </android.support.v7.widget.Toolbar>

MainActivity.java

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {

    private static String TAG = MainActivity.class.getSimpleName();

    private Toolbar mToolbar;
    private FragmentDrawer drawerFragment;
    private String chng;
    private Intent i;
    public SearchView searchView;
    public SearchManager searchManager;

    // Alert Dialog Manager
    AlertDialogManager alert = new AlertDialogManager();

    // Session Manager Class
    SessionManager session;

    private String id;
    private boolean b;
    private String rasa;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        session = new SessionManager(getApplicationContext());
        id = getIntent().getStringExtra("id");
        System.out.println("MAIN ID : " + id);
       /* i=getIntent();
        chng=i.getStringExtra("Changes");*/

      //  Toast.makeText(getApplicationContext(),chng,Toast.LENGTH_LONG).show();
       mToolbar = (Toolbar) findViewById(R.id.toolbar);

        setSupportActionBar(mToolbar);
       getSupportActionBar().setDisplayShowHomeEnabled(false);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        drawerFragment = (FragmentDrawer)
                getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
        drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawerLayout),mToolbar);
        drawerFragment.setDrawerListener(this);
        displayView(0);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

This how my toolbar shows right now

enter image description here

Aditya Vyas-Lakhan
  • 13,409
  • 16
  • 61
  • 96

6 Answers6

30
  <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/color_blue"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <ImageView
                android:id="@+id/tv_header_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@mipmap/header_title" />
        </android.support.v7.widget.Toolbar>

You can set Event of button also by this method...

 public static void showToolBar(Toolbar toolbar,
                                   final AppCompatActivity activity) {
        activity.setSupportActionBar(toolbar);
        activity.getSupportActionBar().setDisplayShowTitleEnabled(false);
        @SuppressWarnings("deprecation")
        Drawable drawable = activity.getResources().getDrawable(
                R.mipmap.back_icon);
        drawable.setColorFilter(
                activity.getResources().getColor(R.color.color_white),
                android.graphics.PorterDuff.Mode.SRC_ATOP);
        activity.getSupportActionBar().setHomeAsUpIndicator(drawable);
        toolbar.setBackgroundColor(activity.getResources().getColor(
                R.color.color_blue));
        activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                activity.finish();
            }
        });
    }
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
Arth Tilva
  • 2,496
  • 22
  • 40
13

Use the logo display on the action bar.

    getSupportActionBar().setLogo(R.drawable.logo);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
kris larson
  • 30,387
  • 5
  • 62
  • 74
  • it can display in center of toolbar and title moved to right side – vishal Nov 27 '16 at 08:40
  • 1
    I am using this method, but the image (logo) is now in the center of toolbar and the title is gone. How can I move logo to the right (end), and title to the left (start)? – natansalda Sep 03 '21 at 13:57
8

instead you can set your image as textview background. use android:background="@drawable/toolbartitle". and setTitle("") in your code.

your final toolbar will look like

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="@drawable/toolbartitle"
    local:theme="@style/MyMaterialTheme.Base"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >


    </android.support.v7.widget.Toolbar>
H Raval
  • 1,903
  • 17
  • 39
1

It was mistake done by me,i was checking with custom toolbar xml,but i already have toolbar in my activity_main.xml..Hope my answer will help others too

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            style="@style/MyToolBarStyle.Base"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/toolbartitle"
            android:minHeight="?attr/actionBarSize" />
    </LinearLayout>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <!-- activity view -->
        <!-- Framelayout to display Fragments -->
        <FrameLayout
            android:id="@+id/container_body"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <!-- navigation drawer -->
        <fragment
            android:id="@+id/fragment_navigation_drawer"
            android:name="info.androidhive.materialdesign.activity.FragmentDrawer"
            android:layout_width="@dimen/nav_drawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:layout="@layout/fragment_navigation_drawer"
            tools:layout="@layout/fragment_navigation_drawer" />

    </android.support.v4.widget.DrawerLayout>

</LinearLayout>
Aditya Vyas-Lakhan
  • 13,409
  • 16
  • 61
  • 96
0

You should set the image src attribute rather than setting the imageview background drawable.

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/toolbartitle"
    />
fractalwrench
  • 4,028
  • 7
  • 33
  • 49
0

You missed to show the source

android:src="@drawable/yourImage"

if not working try adding some genuine width and height instead of wrap content

android:layout_width="50dp"
android:layout_height="50dp"  
Hari Krishnan
  • 5,992
  • 9
  • 37
  • 55