Notificaciones Toast

Las Notificaciones Toast son un tipo de notificación que se superpone a cualquier ventana, que no puede ser cancelado y que no permite interactuar con él. Principalmente se ubican en la parte inferior – central de la pantalla, aunque podemos definirle una ubicación concreta mediante el metodo setGravity(). Los únicos controles que podemos añadirle son  ImageView y TextView si los contenemos mediante un layout personalizado.

 

Definiendo un Toast

Un Toast necesita 3 valores mínimos para mostrarse, estos son:

  • Contexto de aplicación – Context
  • Texto a mostrar – String
  • Duración del Toast – int
    • LENGHT_LONG   : 1
    • LENGHT_SHORT : 2

Podemos instanciarlo directamente pasándole el método makeText() para formarlo. Para mostrarlo basta con llamar al método show().

Toast.makeText(getApplicationContext(), "Toast basico", Toast.LENGTH_LONG).show();

Notificaciones Toast

 

 

Como posicionar las notificaciones toast

Por comodidad estas notificaciones aparecen centradas en la parte inferior de la pantalla, pero podemos modificarlo definiendo el método setGravity(int Gravity, int XOffset, int YOffset).

  • Gravity
    • START, END, CENTER, BOTTOM, TOP, RIGHT, LEFT…

 

Toast _mToast = Toast.makeText(getApplicationContext(), "Toast basico centrado", Toast.LENGTH_LONG);
        _mToast.setGravity(Gravity.CENTER | Gravity.RIGHT , 0, 0);
        _mToast.show();

Notificaciones Toast

 

Notificaciones Toast con Layout personalizado

Otra opción que tenemos, es crear un archivo xml donde definiremos las propiedades del Toast. De esta manera podremos incluir un fondo propio y añadir un icono. Veamos un ejemplo :

  • Creamos un nuevo archivo XML en la carpeta ‘Res > Layout’ que utilizaremos para darle forma a nuestro Toast, en este caso incluiremos un ImageView donde se mostrara el icono de la aplicación, seguido de un TextView.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Linearlayout_toast"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="10dp"
    android:background="#C0C0C0"
    android:gravity="center" >
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />
 
    <TextView
        android:id="@+id/toast_textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:textColor="#FFFFFF" />
 
</LinearLayout>

 

Una vez definido el XML ya solo queda enlazar el archivo mediante el uso de LayoutInflater. Este nos permitirá instanciar el layout que acabamos de crear mediante el método inflate(int, ViewGroup), donde el primer parámetro hace referencia al nuevo archivo creado [R.layout.layout_toast], y el segundo, ViewGroup, será el componente contenedor. [R.id.Linearlayout_toast].

 

    //Instanciamos un nuevo Toast
        Toast _mToast = new Toast(getApplicationContext());

        //Definimos la ubicación del Toast
        _mToast.setGravity(Gravity.CENTER | Gravity.RIGHT , 0, 0);
        
        
        //Instanciamos un LayoutInflater donde definimos el archivo XML a utilizar (R.layout.layout_toast) e
        // indicamos el el objeto [LinearLayout] contenedor (R.id.Linearlayout_toast)
        LayoutInflater inflater = getLayoutInflater();
        View custom_toast = inflater.inflate(R.layout.layout_toast,
                (ViewGroup) findViewById(R.id.Linearlayout_toast));
        
        //Instanciamos un nuevo TextView y lo asociamos al del layout
        TextView textToast = (TextView) custom_toast.findViewById(R.id.toast_textView);

        //Aqui definimos el texto que se mostrará en el Toast
        textToast.setText("Toast con Layout personalizado!");
        
        //Añadimos la vista al Toast y lo mostramos
        _mToast.setView(custom_toast);
        _mToast.show();

 

Notificaciones Toast

También te podría gustar...

Ads Blocker Image Powered by Code Help Pro

Bloqueador de anuncios detectado

Por favor, desactiva tu bloqueador de anuncios para este sitio web. Sabemos que la publicidad puede resultarte molesta, pero esta es la única manera de mantener la web de forma gratuita y accesible para todo el mundo.