Redes Sociais

 Como fazer uma splash screen em Kotlin

13 de outubro de 2019
Como fazer uma splash screen em Kotlin

Nesse tutorial vou descrever Como fazer uma splash screen em Kotlin para que você a utilize antes de abrir seu aplicativo ou na troca de activity.

Então para começar vamos criar um novo projeto vazio(Empty) para fazer a nossa splash screen.

Logo após criar o projeto vamos criar uma nova activity com o nome de AppActivity e seu respectivo layout para ser nosso aplicativo e vamos usar a MainActivity para ser o splash screen.

Como fazer uma splash screen em Kotlin

Agora vamos fazer conforme as instruções a seguir e editar os seguintes arquivos.

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Progress Splash Screen"
        android:gravity="center"
        app:layout_constraintBottom_toTopOf="@+id/progressSplashBar"/>
    <ProgressBar
        android:id="@+id/progressSplashBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity

Essa parte do código é afinal a parte em que programamos o progressBar para 5 segundos e fazemos um loop com o for para que ela faça a progressão.
Para modificar o tempo da splash screen mude apenas a variável maxSplashTime que está em milissegundo.

package br.com.uware.splashscreen

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val maxSplashTime: Long = 5000
        var progressSplash: Long = 0
        val percentResult = maxSplashTime / 101

        for(x in 0..100){
            Handler().postDelayed({
                progressSplashBar.progress = x
            }, progressSplash)
            progressSplash = progressSplash + percentResult
        }

        Handler().postDelayed({
            startActivity(Intent(this, AppActivity::class.java))
            finish()
        },maxSplashTime)
    }
}

activity_app

Esta parte da activity_app vou fazer apenas o layout para dar um exemplo de um aplicativo.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    tools:context=".AppActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Combustível"
        android:textSize="28sp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>
    <LinearLayout
        android:id="@+id/layInfo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintTop_toBottomOf="@+id/textView">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center"
            android:text="Tipo de Combustível"/>
        <RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center">
            <RadioButton
                android:id="@+id/radioGas"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Gasolina" />
            <RadioButton
                android:id="@+id/radioAlc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Álcool" />
        </RadioGroup>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="KM de veículo"
            android:gravity="center"
            android:layout_marginTop="20dp"/>
        <EditText
            android:id="@+id/etKmVeic"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:inputType="numberDecimal"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Valor por Litro(R$)"
                android:gravity="center"
                android:layout_weight="1"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Valor do Abastecimento"
                android:gravity="center"
                android:layout_weight="1"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <EditText
                android:id="@+id/etValLit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="numberDecimal"
                android:gravity="center"
                android:layout_weight="1"/>
            <EditText
                android:id="@+id/etValAbst"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="numberDecimal"
                android:gravity="center"
                android:layout_weight="1"/>
        </LinearLayout>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Quantidade do Abastecimento (Litros)"
            android:gravity="center"/>
        <EditText
            android:id="@+id/etQntAbst"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:inputType="numberDecimal"/>
    </LinearLayout>
    <Button
        android:id="@+id/btnSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Salvar Abastecimento"
        app:layout_constraintTop_toBottomOf="@+id/layInfo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Enfim espero poder ter ajudado com mais este tutorial sobre como fazer uma splash screen em Kotlin.

Veja também Como utilizar o CalendarView em Kotlin.

Então visite e siga nosso canal no YouTube para que o site possa crescer cada vez mais.


Tags:


Desenvolvedor Web e Android ( Kotlin e Java )


Posts relacionados: