Aprende a mostrar un hermoso reemplazo de tostadas de Android con la ayuda de la biblioteca Tasty Toast en Android.

Mostrar mejores y mas agradables notificaciones Toast en Android usando la biblioteca TastyToast

Las notificaciones Toast por defecto de Android son bastante útiles, sin embargo son muy simples y después de algunos años usándolos, puede que incluso acabes odiandolas. A cada uno lo suyo, por eso siempre habrá una alternativa a los componentes nativos de Android que podrás usar cuando estés cansado de los predeterminados. ¡Siempre puede recuperarlos en caso de que vuelva a cambiar de opinión! En el caso de las notificaciones de brindis, hay una bonita biblioteca de reemplazo llamada TastyToast que te ayudará a mostrar nuevas notificaciones animadas que diferenciarán un poco tu aplicación de las demás.

En este artículo, te explicaremos cómo instalar y usar la biblioteca TastyToast en su proyecto de Android.

1. Install TastyToast

To install the TastyToast library in your Android project, modify the build.gradle file and add a new dependency, namely the tastytoast one:

1. Instalar TastyToast

Para instalar la biblioteca TastyToast en tu proyecto de Android, modifica el archivo build.gradle y agrega una nueva dependencia, especificamente TastyToast:

dependencies {
    implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1'
}

Después de modificar, sincroniza el proyecto y comienza de nuevo. Para obtener más información sobre esta biblioteca, visita el repositorio oficial en Github aquí .

2. Visualización de notificaciones

Con TastyToast, podrá mostrar 6 tipos de Toasts para cada ocasión:

  1. Éxito
  2. Advertencia
  3. Error
  4. Información
  5. Defecto
  6. Confusión

Solo necesitas importar el espacio de nombres en la clase donde lo necesita y lanzar el método estático makeText de la clase TastyToast, proporcionar los parámetros requeridos y eso es todo:

import com.sdsmdg.tastytoast.TastyToast;

// 1. Mensaje de éxito
TastyToast.makeText(
    getApplicationContext(), 
    "Success message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.SUCCESS
);

// 2. Mensaje de advertencia
TastyToast.makeText(
    getApplicationContext(), 
    "Warning message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.WARNING
);

// 3. Mensaje de error
TastyToast.makeText(
    getApplicationContext(), 
    "Error message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.ERROR
);

// 4. Mensaje de información
TastyToast.makeText(
    getApplicationContext(), 
    "Info message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.INFO
);

// 5. Mensaje predeterminado
TastyToast.makeText(
    getApplicationContext(), 
    "Default message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.DEFAULT
);

// 6. Mensaje de confusión
TastyToast.makeText(
    getApplicationContext(), 
    "Confusion message !", 
    TastyToast.LENGTH_LONG, 
    TastyToast.CONFUSING
);

Ejemplo completo

En el archivo activity_main.xml tendremos el siguiente diseño que contiene básicamente 6 botones, cada uno de ellos con un identificador que se usará más adelante en el código para adjuntar el evento onClick:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">

    <Button
        android:id="@+id/successButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Success"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.049"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.023" />

    <Button
        android:id="@+id/warningButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Warning"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.95"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.023" />

    <Button
        android:id="@+id/errorButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Error"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.023" />

    <Button
        android:id="@+id/infoButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Information"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.054"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.143" />

    <Button
        android:id="@+id/defaultButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Default"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.551"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.143" />

    <Button
        android:id="@+id/confusionButton"
        android:layout_width="wrap_content"
        android:layout_height="49dp"
        android:text="Confusion"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.95"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.143" />

</android.support.constraint.ConstraintLayout>

El código para probar las notificaciones es:

package com.yourcompany.yourapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.sdsmdg.tastytoast.TastyToast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 1. Mensaje de éxito
        Button buttonSuccess = findViewById(R.id.successButton);
        buttonSuccess.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                    getApplicationContext(),
                "Success message !",
                    TastyToast.LENGTH_LONG,
                    TastyToast.SUCCESS
                );
            }
        });

        // 2. Mensaje de advertencia
        Button buttonWarning = findViewById(R.id.warningButton);
        buttonWarning.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                    getApplicationContext(),
                    "Warning message !",
                    TastyToast.LENGTH_LONG,
                    TastyToast.WARNING
                );
            }
        });

        // 3. Mensaje de error
        Button buttonDanger = findViewById(R.id.errorButton);
        buttonDanger.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                    getApplicationContext(),
                    "Error message ...",
                    TastyToast.LENGTH_LONG,
                    TastyToast.ERROR
                );
            }
        });

        // 4. Mensaje informativo
        Button buttonInfo = findViewById(R.id.infoButton);
        buttonInfo.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                    getApplicationContext(),
                    "Info message ...",
                    TastyToast.LENGTH_LONG,
                    TastyToast.INFO
                );
            }
        });

        // 5. Mensaje predeterminado
        Button buttonDefault = findViewById(R.id.defaultButton);
        buttonDefault.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                    getApplicationContext(),
                "Default message ...",
                    TastyToast.LENGTH_LONG,
                    TastyToast.DEFAULT
                );
            }
        });

        // 6. Mensaje de confusión
        Button buttonConfusion = findViewById(R.id.confusionButton);
        buttonConfusion.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TastyToast.makeText(
                        getApplicationContext(),
                        "Confusion message ...",
                        TastyToast.LENGTH_LONG,
                        TastyToast.CONFUSING
                );
            }
        });
    }
}

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores