terça-feira, 17 de setembro de 2013

Android - Criando um Thema

Ola galera.

Hoje vamos criar novo thema para nossa aplicação. Com isso podemos personalizar o cabeçalho da pagina entre outros componentes.
Primeiro teremos que criar um novo tema.

Vamos passo a passo.

1º Crie um arquivo chamado "janela_titulo.xml"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="35dip"
    android:gravity="center_vertical"
    android:paddingLeft="5dip"
    android:background="#323331">

    <ImageView
        android:id="@+id/header"
        android:src="@drawable/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

Aqui nestamos criando um layout para o titulo.

2º - Crie um aquivo chama Meu_Tema.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomWindowTitleBackground">
        <item name="android:background">#323331</item>
    </style>

    <style name="MeuTheme" parent="android:Theme">
        <item name="android:windowTitleSize">35dip</item>
        <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    </style>
</resources>

Criamos agora um novo tema para incluir em nossa aplicação

3º - Altere o arquivo AndroidManifest.xml

android:theme="@style/MeuTheme"

Falamos para nossa aplicação que ela ira usar o tema criado

4º - Última alteração, em nossa Activity

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        boolean confFet = false;
        if(getWindow().getContainer() == null)
            confFet = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

        setContentView(R.layout.activity_main);

        if (confFet)
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.janela_titulo);
    }

Aqui usamos a Flag "FEATURE_CUSTOM_TITLE", para dizer para nossa aplicação que vamos alterar o titulo, depois passamos qual sera o arquivo que vai substituir.

Pronto. Agora é só roda.

Nenhum comentário: