Vou mostrar como montar um Pattern DashBoard que é a tela inicial de seu sistema, nela pode conter conteúdo dinâmico ou estático, nela também são encontrados quais as principais opções de seu sistema, facilitando a navegação do usuário.
Abaixo segue um print com a estrutura do projeto:
A seguir serão apresentados todos os fontes utilizados no sistema.
Arquivo colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="title_background">#ffFF0000</color>
<color name="title_text">#ffffffff</color>
<color name="foreground">#ffffffff</color>
<color name="background">#ff000000</color>
</resources>
Arquivo strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, DashBoardActivity!</string>
<string name="app_name">DashBoard</string>
<string name="home">Nome do seu programa</string>
<string name="consulta">Consulta</string>
<string name="sobre">Sobre</string>
<string name="config">Config.</string>
<string name="venda">Vendas</string>
<string name="rodape">Mensagem de rodapé</string>
</resources>
Arquivo styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="HomeText">
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">0</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:textSize"> 18sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/foreground</item>
</style>
<style name="TitleBar">
<item name="android:windowNoTitle">true</item>
<item name="android:id">@+id/title_container</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">45dip</item>
<item name="android:orientation">horizontal</item>
<item name="android:background">@color/title_background</item>
</style>
<style name="TitleBarLogo">
<item name="android:id">@+id/title_logo</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">fill_parent</item>
</style>
<style name="TitleBarText">
<item name="android:id">@+id/title_text</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">18sp</item>
<item name="android:paddingLeft">12dip</item>
<item name="android:paddingRight">12dip</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/title_text</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item>
</style>
</resources>
Arquivo main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
style="@style/TitleBar"
android:id="@+id/linearLayout1">
<ImageView
style="@style/TitleBarLogo"
android:id="@+id/img1"
android:src="@drawable/dashboard"
android:onClick="onClickHome"
android:contentDescription="@null"
android:layout_marginTop = "5dip"
android:layout_marginRight="5dip"
android:layout_marginLeft="5dip"
android:layout_marginBottom = "4dip"
android:paddingBottom = "2dip"
android:background="@null"
android:layout_gravity="center"
android:paddingLeft="5dip"
android:paddingRight="7dip" />
<ImageView
android:id="@+id/sep"
android:contentDescription="@null"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="@drawable/separator"
android:layout_marginRight="7dip"/>
<TextView
style="@style/TitleBarText"
android:id="@+id/tv1"
android:paddingLeft = "8dip"
android:text="@string/home"/>
</LinearLayout>
<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/llRodape"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout1" >
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ivVenda"
android:layout_width="0dp"
android:layout_weight="1"
android:contentDescription="@null"
android:layout_height="wrap_content"
android:onClick="onClickVenda"
android:src="@drawable/venda" />
<ImageView
android:id="@+id/ivConsulta"
android:layout_width="0dp"
android:layout_weight="1"
android:contentDescription="@null"
android:layout_height="wrap_content"
android:onClick="onClickConsulta"
android:src="@drawable/consulta" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tvVenda"
style="@style/HomeText"
android:layout_width="0dp"
android:layout_marginTop="0dip"
android:layout_weight="1"
android:text="@string/venda" />
<TextView
android:id="@+id/tvConsulta"
style="@style/HomeText"
android:layout_width="0dp"
android:layout_marginTop="0dip"
android:layout_weight="1"
android:text="@string/consulta" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ivConfig"
android:layout_width="0dp"
android:layout_weight="1"
android:contentDescription="@null"
android:layout_height="wrap_content"
android:onClick="onClickConfig"
android:src="@drawable/config" />
<ImageView
android:id="@+id/ivSobre"
android:layout_width="0dp"
android:layout_weight="1"
android:contentDescription="@null"
android:layout_height="wrap_content"
android:onClick="onClickSobre"
android:src="@drawable/sobre" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tvConfig"
style="@style/HomeText"
android:layout_width="0dp"
android:layout_marginTop="0dip"
android:layout_weight="1"
android:text="@string/config" />
<TextView
android:id="@+id/tvSobre"
style="@style/HomeText"
android:layout_width="0dp"
android:layout_marginTop="0dip"
android:layout_weight="1"
android:text="@string/sobre" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/llRodape"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
<TextView
style="@style/TitleBarText"
android:id="@+id/tvRodape"
android:layout_width="fill_parent"
android:text="@string/rodape"
android:background="@color/title_background"/>
</LinearLayout>
</RelativeLayout>
Arquivo DashBoardActivity.java
package br.com.EscolaDeAndroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class DashBoardActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onClickVenda(View v){
trace("Venda");
}
public void onClickConsulta(View v){
trace("Consulta");
}
public void onClickConfig(View v){
trace("Configurações");
}
public void onClickSobre(View v){
trace("Sobre");
}
public void onClickHome(View v){
trace("Home");
}
public void toast (String msg)
{
Toast.makeText (getApplicationContext(), msg, Toast.LENGTH_SHORT).show ();
}
private void trace (String msg)
{
toast (msg);
}
}
No exemplo apresentado o sistema ainda não efetua nenhuma tarefa, apensa exibe uma mensagem quando o usuário clicar em alguma das imagens, inclusive na imagem do DashBoard, mas o principal desse projeto é ensinar como criar criar esse tipo de layout.
Como resultado temos a seguinte imagem:
Abaixo seguem as imagens utilizadas nos botões:




Em breve estarei postando outros exemplos de Patterns.
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenv com qualidade!




Um comentário:
Amigo, só agora encontrei esse teu maravilhoso aplicativo.
Mas estou tendo problemas com o código fonte, pois sou novato no Android.
Ao rodar o AVD força o fechamento, acredito por algum descuido meu. Estou usando um emulador 4.4 do android.
Pergunto se terias algum Link com os arquivos fontes, ou então, num especial favor, enviar-me o pacote do projeto compactado.
Abs. elfogaca@gmail.com
Postar um comentário