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/