Casey
Casey

Reputation: 560

How do I add a logo Image in the Android App Bar?

I know you can add an icon image to the app bar, however I was wondering if there is a way to put a larger logo image in the app bar on Android. The picture attached has it behind the app bar but I'm trying to get it inside the app bar. Is this possible?

enter image description here

Upvotes: 3

Views: 23992

Answers (4)

Brahmam Yamani
Brahmam Yamani

Reputation: 4477

1) Use latest Android Toolbar

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

 <!-- Place your ImageView and Image-->
 <!-- mention image size-->
</android.support.v7.widget.Toolbar>

Example code:

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>

<LinearLayout
    android:id="@+id/back_menu_ll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center">
    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:src="@drawable/ic_logo"
        />
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Title"
        android:textColor="@color/title_first_textcolor"
        android:textSize="@dimen/abc_text_size_title_material"
        android:gravity="left"
        />
    </android.support.v7.widget.Toolbar>

2) You can set logo programmatically:

Toolbar tool_bar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(tool_bar);
tool_bar.setLogo(R.drawable.image);

For more information about Toolbar, check this link: http://developer.android.com/reference/android/widget/Toolbar.html

Upvotes: 5

KDeogharkar
KDeogharkar

Reputation: 10959

As your image is large and rectangle you can set it in background of your action bar :

final ActionBar actionBar = getActionBar(); 
 BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.raw.actionbar_background)); 
 actionBar.setBackgroundDrawable(background);

For this you can create one activity say "BaseActivity" and add snippet in onCreate method of it and extend that activity in your all activity where you want to show your change Or you can have your different square logo like app icon and set it to your action bar icon.

public BaseActivity extends Activity{
@override
public void onCreate(Bundle bundle){
/// add snippet 
}
}

yourActivity/yourActivities extends BaseActivity

Upvotes: 1

Vivek C A
Vivek C A

Reputation: 1165

For the latest API xml should be,

<android.support.v7.widget.Toolbar  
  android:id="@+id/my_awesome_toolbar"
  android:layout_height="wrap_content"
  android:layout_width="match_parent"
  android:minHeight="?attr/actionBarSize"
  android:background="?attr/colorPrimary" />

Activity should be,

@Override
public void onCreate(Bundle savedInstanceState) {  
   super.onCreate(savedInstanceState);
   setContentView(R.layout.my_layout);

   Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
   toolbar.setLogo(R.drawable.ic_call_black_24dp);
   setSupportActionBar(toolbar);
}

Upvotes: 3

Rohit
Rohit

Reputation: 49

You need to add imageview inside the toolbar

Upvotes: 0

Related Questions