quinta-feira, 10 de maio de 2012

Criando a tela principal - Dashboard

( Android )


No google I/O 2011 foram apresentadas diversas palestras sobre android, e o Google criou um aplicativo demonstrando algumas boas práticas no desenvolvimento de aplicação mobile para Android. 


Essa aplicação se chama iosched e pode se encontrada no site http://code.google.com/p/iosched 


Uma das funcionalidades que essa aplicação demonstra é o padrão dashboard para a tela inicial, onde temos o menu da aplicação. Felizmente o Google liberou o código-fonte da classe DashboardLayout, que pode ser encontrada neste link: 


http://iosched.googlecode.com/hg//android/src/com/google/android/apps/iosched/ui/widget/DashboardLayout.java


Obs: É a mesma classe utilizada pelo google para criar a tela principal do app Google+ p/ Android


É, eu sei. Essa url é ridiculamente grande.   A classe está escondida nas profundezas dos servidores do Google.  Rsrsrsrsrs 


Essa classe é um gerador de layout customizado que vai organizar as views - neste caso, botões - da tela principal em linhas e colunas. 


Beleza, agora que você já baixou a classe DashboardLayout.java, vamos criar o projeto. Meu objetivo não é ensinar como usar o eclipse, então eu parto do pré-suposto que todos saibam criar um projeto Android no mesmo.   Pode dar o nome que preferir ao projeto. 


Print  do projeto criado: 



Vamos copiar essa classe para nosso projeto, inserindo-a no pacote com.google.android.apps.iosched.ui.widget  A única alteração que vamos fazer no código-fonte  é configurar o números de colunas para 2.


Para isso, encontre o seguinte trecho de código na classe DashboardLayout:   int cols = 1;  , altere o valor de cols para 2. 




Print - pacote com.google.android.apps.iosched.ui.widget  com a classe DashboardLayout inserida: 




O próximo passo é customizar o arquivo /res/layout/main.xml para utilizar o DashboardLayout. Felizmente esse layout é mágico e vai fazer todo o trabalho pessado. Rsrsrsrsrs 


Podem fazer o download das imagens utilizadas no exemplo: 
http://www.theheadsman.com.br/exemploblog.zip


Segue o código: 


<?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="fill_parent"
    android:background="@color/fundo"
    android:gravity="center"
    android:orientation="vertical" >

    <include layout="@layout/include_header" />

    <com.google.android.apps.iosched.ui.widget.DashboardLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" >

        <Button
            android:id="@+id/bt1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn1"
            android:drawablePadding="10dp" />

        <Button
            android:id="@+id/bt2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn2"
            android:drawablePadding="10dp" />

        <Button
            android:id="@+id/bt3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn3"
            android:drawablePadding="10dp" />

        <Button
            android:id="@+id/bt4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn4"
            android:drawablePadding="10dp" />
        
    </com.google.android.apps.iosched.ui.widget.DashboardLayout>

    <include layout="@layout/include_footer" />

</LinearLayout>


Note que quando criamos a tag do DashboardLayout utilizamos o nome completo da classe, pois ela é uma View customizada. 

com.google.android.apps.iosched.ui.widget.DashboardLayout

( Futuramente estarei falando de Views customizadas ). 

Print do main.xml 



O Arquivo /res/layout/main.xml representa o menu principal com o dashboard e possui os quatros botões da aplicação.  Note que no meu layout eu incluir outros dois arquivos para criar o cabeçalho e o rodapé. (Fica a critério de vocês a forma como vão configurar os seus projetos) 


É para fechar, vamos adicionar eventos aos botões. 

Voltado a classe principal do projeto, Main.java.

O que precisamos implementar agora são os eventos dos botões. Para isso vamos alterar o código-fonte da classe Main conforme demonstrado a seguir. ( Que no meu caso está com o nome de ExemploDashboard ).


public class ExemploDashboard extends Activity implements OnClickListener {

private Button bt1;
private Button bt2;
private Button bt3;
private Button bt4;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(this);
bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(this);
bt3 = (Button) findViewById(R.id.bt3);
bt3.setOnClickListener(this);
bt4 = (Button) findViewById(R.id.bt4);
bt4.setOnClickListener(this);
}

public void onClick(View v) {

if (v == bt1) {

/* Implemente você */

} else if (v == bt2) {

/* Implemente você */

} else if (v == bt3) {

/* Implemente você */

} else if (v == bt4) {

/* Implemente você */

}

}
}




 Por hoje é só pessoal ! 




Nenhum comentário:

Postar um comentário