Olá Pessoal,
Hoje vou apresentar como criar um Splash Screen para nosso aplicativos, isso é muito importante no quesito visual de seu aplicativo, principalmente quando você quiser impressionar seu cliente.
Abaixo segue um print do projeto.
Abaixo seguem os fontes utilizados no projeto.
Arquivo AndroidManifest.xml
Arquivo main.xml
Arquivo splashscreen.xml
Arquivo SplashScreen.java
Arquivo Principal.java
Imagem utilizada no sistema, colocar na pastas drawable-hdpi:
Abaixo segue o resultado de nosso aplicativo:
O sistema apresentará a tela de Splash Screen por 5 segundos, ou até o usuário tocar na tela, em seguida será exibida a tela "Principal".
Caso o usuário clique no botão "Voltar" enquanto está sendo exibida a tela Splash Screen, o sistema será encerrado.
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.
Hoje vou apresentar como criar um Splash Screen para nosso aplicativos, isso é muito importante no quesito visual de seu aplicativo, principalmente quando você quiser impressionar seu cliente.
Abaixo segue um print do projeto.
Abaixo seguem os fontes utilizados no projeto.
Arquivo AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.EscolaDeAndroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".SplashScreen" android:theme="@android:style/Theme.NoTitleBar" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Principal" android:label="@string/app_name"/> </application> </manifest>
Arquivo main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Menu principal"> </TextView> </LinearLayout>
Arquivo splashscreen.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/imagem"> </ImageView> </LinearLayout>
Arquivo SplashScreen.java
package br.com.EscolaDeAndroid; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MotionEvent; public class SplashScreen extends Activity{ private Thread mSplashThread; private boolean mblnClicou = false; /** Evento chamado quando a activity é executada pela primeira vez */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); //thread para mostrar uma tela de Splash mSplashThread = new Thread() { @Override public void run() { try { synchronized(this){ //Espera por 5 segundos or sai quando //o usuário tocar na tela wait(5000); mblnClicou = true; } } catch(InterruptedException ex){ } if (mblnClicou){ //fechar a tela de Splash finish(); //Carrega a Activity Principal Intent i = new Intent(); i.setClass(SplashScreen.this, Principal.class); startActivity(i); } } }; mSplashThread.start(); } @Override public void onPause() { super.onPause(); //garante que quando o usuário clicar no botão //"Voltar" o sistema deve finalizar a thread mSplashThread.interrupt(); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { //o método abaixo está relacionado a thread de splash synchronized(mSplashThread){ mblnClicou = true; //o método abaixo finaliza o comando wait //mesmo que ele não tenha terminado sua espera mSplashThread.notifyAll(); } } return true; } }
Arquivo Principal.java
package br.com.EscolaDeAndroid; import android.app.Activity; import android.os.Bundle; public class Principal extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Imagem utilizada no sistema, colocar na pastas drawable-hdpi:
Abaixo segue o resultado de nosso aplicativo:
Splash Screen |
Menu Princpal |
O sistema apresentará a tela de Splash Screen por 5 segundos, ou até o usuário tocar na tela, em seguida será exibida a tela "Principal".
Caso o usuário clique no botão "Voltar" enquanto está sendo exibida a tela Splash Screen, o sistema será encerrado.
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!