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