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