¿Cómo hacer que un cuadro de diálogo de alerta ocupe la mayor parte del tamaño de la pantalla en Android?

Un cuadro de diálogo de alerta es una ventana que aparece en la pantalla para dar notificaciones al usuario, tomar algunas decisiones por el usuario o ingresar alguna información del usuario. Un cuadro de diálogo de alerta generalmente no es de pantalla completa, pero en este artículo, implementaremos algo similar.

Creación de un cuadro de diálogo de alerta:

  1. Título: esta área da título al cuadro de diálogo de alerta  .
  2. Descripción: Esta área da el mensaje principal del cuadro de diálogo de alerta.
  3. Botón de acción: Esta área se ocupa de la decisión del usuario después de leer la descripción

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte  Cómo crear/iniciar un nuevo proyecto en Android Studio . El código para eso se proporcionó tanto en Java como en el lenguaje de programación Kotlin para Android.

Paso 2: Trabajando con activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

XML

<?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"
    android:background="#00FF00">
  
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Open Gift"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 3: trabajar con el archivo MainActivity

Vaya al archivo MainActivity y consulte el siguiente código. A continuación se muestra el código para el archivo MainActivity. Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // for changing the background color of title bar
        ActionBar aBar = getSupportActionBar();
        ColorDrawable cd = new ColorDrawable(Color.parseColor("#FF00FF00"));
        if (aBar != null) {
            aBar.setBackgroundDrawable(cd);
        }
  
        // using onClickListener on button
        findViewById(R.id.button).setOnClickListener(v -> {
            
            // builds alert dialog
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            
            // description of alert dialog
            builder.setMessage("Welcome to GeeksForGeeks!");
            
            // Title of alert dialog
            builder.setTitle("Gift !");
            
            builder.setCancelable(false);
            
            // Action button of alert dialog for cancel dialog and come to homepage
            builder.setPositiveButton("Great, see again!", (dialog, which) -> dialog.cancel());
             
            // Action button of alert dialog  for exit app
            builder.setNegativeButton("Exit", (dialog, which) -> finish());
            AlertDialog alertDialog = builder.create();
             
            // show alert dialog
            alertDialog.show();
  
            DisplayMetrics displayMetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
            layoutParams.copyFrom(alertDialog.getWindow().getAttributes());
            
            // setting width to 90% of display
            layoutParams.width = (int) (displayMetrics.widthPixels * 0.9f);
            
            // setting height to 90% of display
            layoutParams.height = (int) (displayMetrics.heightPixels * 0.9f);
            alertDialog.getWindow().setAttributes(layoutParams);
        });
    }
}

Kotlin

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.View
import android.view.WindowManager
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // for changing the background color of title bar
        val aBar = supportActionBar
        val cd = ColorDrawable(Color.parseColor("#FF00FF00"))
        aBar?.setBackgroundDrawable(cd)
  
        // using onClickListener on button
        findViewById<View>(R.id.button).setOnClickListener {
            
            // builds alert dialog
            val builder = AlertDialog.Builder(this)
              
            // description of alert dialog
            builder.setMessage("Welcome to GeeksForGeeks!")
              
            // Title of alert dialog
            builder.setTitle("Gift !")
            builder.setCancelable(false)
              
            // Action button of alert dialog for cancel dialog and come to homepage
            builder.setPositiveButton("Great, see again!") { dialog, which -> dialog.cancel() }
              
            // Action button of alert dialog  for exit app
            builder.setNegativeButton("Exit") { dialog, which -> finish() }
              
            val alertDialog = builder.create()
              
            // show alert dialog
            alertDialog.show()
  
            val displayMetrics = DisplayMetrics()
            windowManager.defaultDisplay.getMetrics(displayMetrics)
            val layoutParams = WindowManager.LayoutParams()
            layoutParams.copyFrom(alertDialog.window?.attributes)
              
            // setting width to 90% of display
            layoutParams.width = (displayMetrics.widthPixels * 0.9f).toInt()
              
            // setting height to 90% of display
            layoutParams.height = (displayMetrics.heightPixels * 0.9f).toInt()
            alertDialog.window?.attributes = layoutParams
        }
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por its_codezada17 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 *