You can utilize the Action Bar to display more information by customizing it.
In this tutorial we will learn to customize the Action Bar similar to TOI and Whatsapp applications.![]() |
Project Hierarchy |
Overview
ActionBar actionBar = getActionBar();
//set actionbar background
actionBar.setBackgroundDrawable(new ColorDrawable(Color.argb(255,255,255,255)));
//hide back button
actionBar.setDisplayShowHomeEnabled(false);
//hide title
actionBar.setDisplayShowTitleEnabled(false);
//enable customLayout
actionBar.setDisplayShowCustomEnabled(true);
//set action bar icon API 14+
actionBar.setIcon(getResources().getDrawable(R.drawable.action_bar_icon));
//set contentView require View and LayoutParams
LayoutParams layout = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.custom_layout, null);
actionBar.setCustomView(actionBarLayout, layout);
TOI Action Bar
custom_toi.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal" >
<Button
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="10dp"
android:background="@drawable/ic_navigation_drawer"
/>
<TextView
android:id="@+id/textViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:singleLine="true"
android:text="THE TIMES OF INDIA"
android:textColor="@android:color/black"
android:textSize="20dp"
android:textStyle="bold"
/>
</LinearLayout>
|
ActivityTOIActionBar.java
import
android.app.ActionBar;
import
android.app.ActionBar.LayoutParams;
import
android.app.Activity;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.ViewGroup;
import
com.example.customactionbar.R;
public class
ActivityTOIActionBar extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
customActionBar();
setContentView(R.layout.dummy);
}
private void
customActionBar() {
ActionBar
actionBar = getActionBar();
actionBar.setBackgroundDrawable(new
ColorDrawable(Color.argb(255, 255, 255, 255)));
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
LayoutParams
layout = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
ViewGroup
actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.custom_toi, null);
actionBar.setCustomView(actionBarLayout,
layout);
}
@Override
public boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
|
Whatsapp Action Bar
custom_whatsapp.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Ankit"
android:textColor="@android:color/white"
android:textSize="20dp"/>
<TextView
android:id="@+id/textViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="online"
android:textColor="#C0C0C0"
android:textSize="15dp"
/>
</LinearLayout>
|
ActivityWhatsappActionBar.java
import
android.annotation.TargetApi;
import
android.app.ActionBar;
import
android.app.ActionBar.LayoutParams;
import
android.app.Activity;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Build;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.ViewGroup;
import
com.example.customactionbar.R;
public class
ActivityWhatsappActionBar extends Activity{
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
customActionBar();
setContentView(R.layout.dummy);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private void
customActionBar() {
ActionBar
actionBar = getActionBar();
actionBar.setBackgroundDrawable(new
ColorDrawable(Color.parseColor("#004d40")));
actionBar.setIcon(getResources().getDrawable(R.drawable.action_bar_icon));
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP);
LayoutParams
layout = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
ViewGroup
actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.custom_whatsapp, null);
actionBar.setCustomView(actionBarLayout,
layout);
}
@Override
public boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.whatsapp, menu);
return true;
}
}
|
Centre Title Action Bar
custom_centre_title.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/textViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:singleLine="true"
android:text="Title"
android:textColor="@android:color/black"
android:textSize="20dp"
android:textStyle="bold"
/>
</LinearLayout>
|
ActivityCentreTitleActionBar.java
import
android.app.ActionBar;
import
android.app.ActionBar.LayoutParams;
import
android.app.Activity;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Bundle;
import android.view.ViewGroup;
import
com.example.customactionbar.R;
public class
ActivityCentreTitleActionBar extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
customActionBar();
setContentView(R.layout.dummy);
}
private void
customActionBar() {
ActionBar
actionBar = getActionBar();
actionBar.setBackgroundDrawable(new
ColorDrawable(Color.argb(255, 255, 255, 255)));
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
LayoutParams
layout = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
ViewGroup
actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.custom_centre_title, null);
actionBar.setCustomView(actionBarLayout,
layout);
}
}
|
Download Source Code Download
Местные жители вернулись с новой песней Just Before the Morning, которая выходит вместе с музыкальным видео. После недавно выпущенных треков «Desert Snow» и «Hourglass» сингл был записан на студии Valentine Recording Studio, 64Sound и Sargent Recorders в Лос-Анджелесе. Проверьте это ниже.
ReplyDelete«Just Before The Morning» появился в результате всплеска творчества после того, как мы, наконец, воссоединились в студии, — говорится в пресс-релизе группы. «Песня исследует циклическую природу жизни и множество способов, которыми мы начинаем заново».
Read more: Local Natives Share Video for New Song 'Just Before the Morning' - Our Culture https://sound-sb.ru/