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.
<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