android | ¿Cómo cambiar la fuente Toast?

Un brindis es un mensaje de retroalimentación. Se necesita muy poco espacio para mostrar, mientras que la actividad general es interactiva y visible para el usuario. Desaparece después de unos segundos. Desaparece automáticamente. Si el usuario quiere un mensaje visible permanente, se puede usar la notificación .

Toast desaparece automáticamente en función de la duración definida por el desarrollador. Los pasos para cambiar la fuente del mensaje del brindis son los siguientes:

  1. Paso 1: agregue botones en el archivo activity_main.xml para mostrar el mensaje de brindis con una fuente personalizada.
    Abra el archivo activity_main.xml y cree un botón con id showToast.

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
      
        <!--  To show the Toolbar-->
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:background="@color/colorPrimary"
            app:title="GFG"
            app:titleTextColor="@android:color/white"
            android:layout_height="android:attr/actionBarSize"/>
      
        <!-- Button To show the toast message-->
      
        <Button
            android:id="@+id/showToast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Show Toast"
            android:layout_marginTop="16dp"
            android:padding="8dp"
            android:layout_below="@id/toolbar"
            android:layout_centerHorizontal="true"/>
      
    </RelativeLayout>
  2. Paso 2: Abra el archivo styles.xml y agregue un nuevo estilo para el mensaje de brindis.

    Abra el archivo style.xml y agregue el siguiente código. Aquí se utiliza la fuente sans-serif-black .

    <!-- Toast Style -->
    <style name="toastTextStyle" parent="TextAppearance.AppCompat">
        <item name="android:fontFamily">sans-serif-black</item>
    </style>
  3. Paso 3: Abra MainActivity.java y agregue la función para mostrar Toast personalizado.

    Cree una nueva instancia de Toast usando el método makeText() . Use el método getView() para obtener la vista del Toast. Abra el archivo MainActivity.java y agregue la función para mostrar el mensaje de brindis.

    private void showMessage(Boolean b, String msg)
    {
      
        // Creating new instance of Toast
        Toast toast
            = Toast.makeText(
                MainActivity.this,
                " " + msg + " ",
                Toast.LENGTH_SHORT);
      
        // Getting the View
        View view = toast.getView();
      
        // Finding the textview in Toast view
        TextView text
            = (TextView)view
                  .findViewById(
                      android.R.id.message);
      
        // Setting the Text Appearance
        if (Build.VERSION.SDK_INT
            >= Build.VERSION_CODES.M) {
            text.setTextAppearance(
                R.style.toastTextStyle);
        }
      
        // Showing the Toast Message
        toast.show();
    }
  4. Paso 4: configure OnClickListner en el botón y muestre el mensaje de brindis.

    Para setOnclickListner(), primero cree una nueva instancia de la clase Button en el archivo Java y busque la vista del botón usando la identificación proporcionada en el archivo xml y llame al método setOnClickListener() en el objeto del botón.

    // Finding the button
    Button showToast
        = findViewById(R.id.showToast);
      
    // Setting the on click listener
    showToast
        .setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v)
                {
      
                    // Calling the function
                    // to show toast message
                    showMessage();
                }
            });

Finalmente los archivos son

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
  
<RelativeLayout 
    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">
  
    <!--  To show the Toolbar-->
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:background="@color/colorPrimary"
        app:title="GFG"
        app:titleTextColor="@android:color/white"
        android:layout_height="android:attr/actionBarSize"/>
  
    <!-- Button To show the toast message-->
  
    <Button
        android:id="@+id/showToast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Show Toast"
        android:layout_marginTop="16dp"
        android:padding="8dp"
        android:layout_below="@id/toolbar"
        android:layout_centerHorizontal="true"/>
  
</RelativeLayout>

styles.xml

<resources >
  
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
  
    <!-- Toast Style -->
    <style name="toastTextStyle" parent="TextAppearance.AppCompat">
        <item name="android:fontFamily">sans-serif-black</item>
    </style>
</resources>

MainActivity.java

package org.geeksforgeeks.customtoast;
  
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Finding the button
        Button showToast = findViewById(R.id.showToast);
  
        // Setting the on click listener
        showToast.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                showMessage();
            }
        });
    }
  
    private void showMessage()
    {
  
        // Creating new instance of Toast
        Toast toast
            = Toast.makeText(
                MainActivity.this,
                "GeeksForGeeks",
                Toast.LENGTH_SHORT);
  
        // Getting the View
        View view = toast.getView();
  
        // Finding the textview in Toast view
        TextView text
            = (TextView)view.findViewById(
                android.R.id.message);
  
        // Setting the Text Appearance
        if (Build.VERSION.SDK_INT
            >= Build.VERSION_CODES.M) {
            text.setTextAppearance(
                R.style.toastTextStyle);
        }
  
        // Showing the Toast Message
        toast.show();
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *