domingo, 13 de maio de 2012

Tela Splash Screen

( Android ) 


Vocês já devem ter visto alguma aplicação abrindo uma tela inicial com uma mensagem "Por favor aguarde"ou uma imagem , como por exemplo, a tela de jogo Angry Birds e a tela de iniciação do próprio eclipse. Essas telas são Splash Screens e para implementá-las no Android podemos utilizar um handler. 


Uma tela splash screen deve permanecer aberta por um determinado tempo para que a aplicação consiga realizar algum processo inicial. 


Esse tipo de funcionalidade impressiona o usuário, dando uma impressão de que a aplicação é bem robusta e profissional. 


Vamos criar uma simples Activity que exibirá uma imagem na tela, a qual ficará aberta por 3 segundos. 


Então vamos lá. 


Para começar, crie um projeto android no eclipse.  


Print do projeto: 




A seguir, vamos configurar o nosso arquivo de layout. A configuração é bem simples, uma vez que vamos apenas abrir uma imagem na Tela Splash Screen. 


Salve a imagem na pasta res/drawable do projeto. 


Em seguida, crie um novo arquivo  de layout com o nome de splashscreen.xml e insira a tag do componente ImagView com as seguintes configurações: 


     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:src="@drawable/bgpeixes"   <!- Imagem -->
     android:layout_gravity="center"

Imagem utilizada no exemplo: 




Segue o arquivo completo.

<?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:orientation="vertical" >


    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:src="@drawable/bgpeixes" />

</LinearLayout>




Agora crie a activity  SplashScreen. 

Esta é a classe que envia um java.lang.Runnable para ser processado com atraso de 3 segundos. 



public class SplashScreen extends Activity implements Runnable {

private final int DELAY = 3000;

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

Handler h = new Handler();
h.postDelayed(this, DELAY);

}

public void run() {

startActivity(new Intent(this, Main.class));

finish();

}

}



O exemplo tem uma simples activity que mostra uma imagem na tela, Enquanto isso um handler foi criado, e o método postDelayd(Runnable,delayMillis) foi utilizado para agendar um java.lang.Runnable com atraso de 3 segundos.

Importante: Configure a SpashScreen para a primeira activity da aplicação, que está configurada com a acão MAIN e categoria LAUNCHER no AndroidManifest.xml. 

Para melhorar o visual da sua aplicação, vamos retirar a barra de titulo da activity. 

No AndroidManifest.xml na tag activity insira o seguinte código: android:theme="@android:style/Theme.Black.NoTitleBar"

       <activity 
            android:name=".Main"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Black.NoTitleBar">
        </activity>

Faça o mesmo para a Activity SplashScreen. 

Rode a aplicação, e aí está a sua Splash Screen. 

Até mais !





Nenhum comentário:

Postar um comentário