Skip to main content

How to create custom title in Android Application


Custom title is nothing but a layout you bind to your application's title bar.

MainActivity.java
package com.example.customtitlebar;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Window;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.customheader);
init();
}
private void init() {
// TODO Auto-generated method stub
Button Left=(Button)findViewById(R.id.header_left_btn);
Left.setText("BACK");
Left.setTextColor(Color.GRAY);
Button Title=(Button)findViewById(R.id.header_text);
Title.setText("Scorecard");
Title.setTextColor(Color.GRAY);
Button Right=(Button)findViewById(R.id.header_right_btn);
Right.setText("NEXT");
Right.setTextColor(Color.GRAY);
/*If you want attach icon with Title text add below line in code.
Title.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_launcher, 0, 0, 0);
*/
/*
You just need to pass drawable resources to this method.
setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom)
*/
}
}

mainactivity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.customtitlebar.MainActivity"
tools:ignore="MergeRootFrame" />

This is the layout which define how your custom title bar will look like.
customheader.xml
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="50dp"
android:layout_gravity="fill_horizontal"
android:layout_width="fill_parent"
android:background="@android:color/holo_blue_light"
android:orientation="horizontal">
<Button
android:id="@+id/header_left_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:textStyle="bold"
android:background="@android:color/transparent"
android:textColor="@android:color/white" />
<Button
android:id="@+id/header_text"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_margin="5dp"
android:textAlignment="center"
android:textSize="18sp"
android:background="@android:color/transparent"
android:textColor="@android:color/white"
android:textStyle="bold" />
<Button
android:id="@+id/header_right_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:background="@android:color/transparent"
android:textColor="@android:color/white"
android:textStyle="bold" />
</RelativeLayout>
To apply your own custom title bar you need to create your own theme in theme.xml file.

theme.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme">
<item name="android:windowTitleSize">50dp</item>
<item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
</style>
</resources>
Apply style for your custom title bar in style.xml
style.xml
add below line in style.xml file
<style name="WindowTitleBackground" >
<item name="android:background">@android:color/transparent</item>
</style>
And main part of applying custom title bar is you have to change theme of your activity in which you are applying custom title bar.
AndroidManifest.xml
Just add android:theme="@style/MyTheme" line in activity tag.
<activity
android:name="com.example.customtitlebar.MainActivity"
android:label="@string/app_name"
android:theme="@style/MyTheme">


That's it you are done with the custom title bar in android.
Here is the sample Code
CustomTitleBar

Comments

Popular posts from this blog

Get domain name from URL in android

Sample Code: String url="http://sports.in.msn.com/football-world-cup-2014/world-cup-animals-5"; String hostName=getDomainName(url); private CharSequence getDomainName(String shareURL) throws URISyntaxException {    URI uri = new URI(shareURL);    String domain = uri.getHost();     return domain; } above method return host name from given URL. You can get more from URL using below methods. uri.getProtocol(); uri.getAuthority(); uri.getHost(); uri.getPort(); uri.getPath(); uri.getQuery(); uri.getFile(); Output: protocol = http authority = sports.in.msn.com host = sports.in.msn.com port = -1 path = /football-world-cup-2014/world-cup-animals-5 query = null filename = /football-world-cup-2014/world-cup-animals-5

How to check internet connectivity in Android app using BroadcastReceiver

So let's get started with How to check internet connectivity in Android using BroadcastReceiver. For this post I'm using Kotlin language. Well lots of people are using simple method to get network connectivity using ConnectivityManager. But using that approach we will get network state only when we are calling that method. So how would I know that network state changed. This will achieved using BroadcastReceiver.  What is BroadcastReceiver? BroadcastReceiver uses Publish-Subscribe pattern. Android app can send and receive messages from Android system and other apps.  Android system sends broadcast when various system events occurred like device charging, network state changes. Apps can register to receive specific broadcasts. When a broadcast is sent, the system automatically routes broadcasts to apps that have subscribed to receive that particular type of broadcast. So for this scenario we need to add some changes in AndroidManifest.xml file - ...

WeekView in Android

Hello Friends,    Have you Searching for Android calender with WeekView.  Today I am sharing android tutorial for android custom calendar WeekView. WeekView.java public class WeekView extends ActionBarActivity implements OnItemClickListener, OnClickListener { private GridView mGrid; private GregorianCalendar mCalendar; private Date[] mWeek; private TextView mMonthText; private RelativeLayout mArrowRight; private RelativeLayout mArrowLeft; private CalendarAdapter mAdapter; private SimpleDateFormat mFormatMonth = new SimpleDateFormat("MMMM"); private SimpleDateFormat mFormatDay = new SimpleDateFormat("d"); private SimpleDateFormat mFormatYear = new SimpleDateFormat("yyyy"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_week_view); mGrid=(GridView)findViewById(R.id.gridview); mGrid.s...