Inicio » Android » Cómo Personalizar el título de tu Aplicación Android

Cómo Personalizar el título de tu Aplicación Android

Hay varias maneras de personalizar el título de tu aplicación android, yo trataré de explicar aquí la forma mas sencilla que he encontrado.

La pesonalización del título de tu aplicación consiste básicamente en dos pasos:

  1. Crear un layout donde tendremos nuestro título.
  2. Decirle a nuestra aplicación que lo muestre cuando se cree.

Layout (con una imagen y un título):

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:id=”@+id/main_title_layout”
android:layout_width=”match_parent” android:layout_height=”wrap_content” android:orientation=”horizontal”
android:background=”@android:color/black”>
<ImageView
android:layout_width=”22dp”
android:layout_height=”22dp”
android:contentDescription=”@string/app_name”
android:src=”@drawable/icon”
android:gravity=”center_vertical” />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_gravity=”center_vertical”
android:paddingLeft=”4dp”
android:text=”@string/app_name”
android:textSize=”12sp”
android:textColor=”@android:color/white”
/>
</LinearLayout>

Supongamos que guardamos el layout con el nombre de “main_title.xml”.

Código para usar el layout anterior en cada Activity

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Habilitamos la personalización del título
this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.main_title);
//Otras acciones de nuestra app
}

Bien, esta sería la teoría, pero en la práctica, si añades un fondo a al layout, se puede apreciar que no encaja del todo:

title_black_padding

Esto parece ser que ocurre, porque realmente lo que hacemos con las instrucciones anteriores es insertar ese layout como título, pero dentro del “título” original.
Para poder solucionarlo añadimos las siguientes instrucciones:

View view = getWindow().findViewById(R.id.main_title_layout);
((FrameLayout) view.getParent()).setPadding(0,0, 0,0);

Donde main_title_layout sería el identificador del Layout contenedor de nuestro título personalizado.

Eso es todo!

A disfrutar!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s