Fala galera!
Este post será uma dica rápida e simples para aqueles que, assim como eu, estão iniciando no mundo do desenvolvimento Android.
Vocês já perceberam que a maioria dos aplicativos - se não todos - possuem uma tela de apresentação ou também conhecida como splash screen. O splash screen é um recurso muito utilizado em desenvolvimento, não só de aplicativos, mas também em jogos e softwares diversos.
Essa funcionalidade é extremamente útil, pois permite que, antes de iniciar o aplicativo, seja possível realizar validações de diversos recursos para o perfeito funcionamento da aplicação. Tais recursos podem ser conectividade com banco de dados, internet, GPS, etc.
Em outro post, falamos um pouco sobre o teste de conexão de internet que seu aplicativo possa verificar antes de continuar a execução normalmente. Você poderia adicionar essa tela splash screen durante a verificação, por exemplo.
Vamos lá então!
Para iniciarmos, precisamos modificar nosso AndroidManifest. Vamos deixá-lo dessa forma:
<manifest
android:versioncode="1"
android:versionname="1.0"
package="com.deviscoming.splashscreen"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-sdk
android:minsdkversion="9"
android:targetsdkversion="18"/>
<application
android:allowbackup="true"
android:icon="@drawable/logo_app"
android:label="@string/app_name"
android:supportsrtl="true"
android:theme="@style/AppTheme">
<!-- Splash Screen -->
<activity
android:icon="@drawable/logo_app"
android:label="@string/app_name"
android:name=".SplashScreenActivity"
android:nohistory="false"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN">
<category android:name="android.intent.category.LAUNCHER">
</category>
</action>
</intent-filter>
</activity>
<!-- fim Splash Screen -->
<!-- activity principal -->
<activity
android:icon="@drawable/logo_app"
android:label="@string/app_name"
android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<!-- fim activity principal -->
</application>
</manifest>
Assim, definimos que a primeira activity a ser executada será a nossa SplashScreenActivity. Esta classe será executada ao iniciar o aplicativo. Nela iremos codificar, conforme o código abaixo.
package com.deviscoming.splashscreen;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
/**
* Created by Renan Rodrigues Ramos on 15/07/2016.
*/
public class SplashScreenActivity extends Activity {
private final int TIME_SPLASH_DISPLAY = 4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(i);
finish();
}
}, TIME_SPLASH_DISPLAY);
}
}
Nesta classe, como podemos ver, temos um objeto Handler() e utilizaremos o método postDelayed() que será responsável por fazer o delay na inicialização de nossa aplicação.
O método postDelayed() possui dois argumentos:
- a thread que será responsável pela execução em segundo plano. Em nosso caso teremos o método run() da interface Runnable que é a responsável por iniciar a activity para o usuário;
- uma constante que definimos com 4000 milissegundos, ou seja, 4 segundos.
Veja que dentro do método run() temos um objeto Intent que inicia a classe MainActivity após o término do delay.
Intent i = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(i);
Aqui está o layout da tela splash screen. A nomeamos como activity_splash_screen:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/branco">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/splash_screen_imagem"
android:paddingBottom="@dimen/padding_img_splascreen_bottom"
android:paddingLeft="@dimen/padding_img_splascreen_left"
android:paddingRight="@dimen/padding_img_splascreen_right"
android:paddingTop="@dimen/padding_img_splascreen_top"/>
</LinearLayout>
Depois de fazer essas configurações, você precisará desenvolver a classe MainActivity e seu layout. Com isso sua tela de apresentação já está funcionando.
Deixe seus comentários e dicas!
Até mais!
;)

Nenhum comentário:
Postar um comentário