¿Quieres que al abrir tu aplicación Android aparezca automáticamente un popup con una imagen bonita (anuncio, bienvenida, oferta, etc.) y solo un botón de cerrar? En este tutorial te enseño cómo hacer un popup en Android Studio con Java de la forma más sencilla, limpia y optimizada posible. ¡Sin librerías extras y en menos de 30 líneas de código!
¿Para qué sirve este tipo de popup?
- Anunciar una promoción o nuevo episodio en tu app de radio/podcast
- Mostrar una imagen de bienvenida o evento especial
- Aumentar el engagement sin molestar al usuario
- No ocupa espacio en tu layout principal
Resultado final (así quedará en tu app)
Un popup grande, centrado, con fondo transparente, imagen full width y solo una “X” para cerrar. Se ve profesional y moderno.

Requisitos
- Android Studio (cualquier versión reciente)
- Proyecto en Java
- Una imagen en drawable (por ejemplo: popup_bienvenida.png)
Paso 1: Crea el layout del popup
Crea un nuevo layout llamado dialog_popup.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:cardCornerRadius="20dp"
app:cardElevation="12dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FFFFFF">
<ImageView
android:id="@+id/ivPopup"
android:layout_width="match_parent"
android:layout_height="420dp"
android:scaleType="centerCrop"
android:src="@drawable/radio_image" /> <!-- ← tu imagen aquí -->
<ImageButton
android:id="@+id/btnClose"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="end"
android:layout_margin="12dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@android:drawable/ic_menu_close_clear_cancel" />
</LinearLayout>
</androidx.cardview.widget.CardView>
Paso 2: El código dentro de MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mostrarPopupBienvenida();
}
private void mostrarPopupBienvenida() {
View popup = getLayoutInflater().inflate(R.layout.dialog_image, null);
AlertDialog dialog = new AlertDialog.Builder(this)
.setView(popup)
.setCancelable(false)
.create();
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
popup.findViewById(R.id.btnClose).setOnClickListener(v -> dialog.dismiss());
}
Preguntas frecuentes sobre popups en Android Studio
¿Se puede poner animación de entrada?
Sí, solo añade antes de dialog.show(): «`java dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; «`
¿Funciona en tablets y pantallas grandes?
Sí, cambia el ancho a 0.9 del screen con: «`java dialog.getWindow().setLayout((int)(getResources().getDisplayMetrics().widthPixels*0.9), ViewGroup.LayoutParams.WRAP_CONTENT); «`
¿Puedo poner un botón “No volver a mostrar”?
Claro, cambia el ImageButton por un TextView o Button y guarda la preferencia.
Conclusión
Con menos de 30 líneas tienes un popup profesional que aparece al iniciar tu app Android. Es la forma más limpia y rápida de hacer un popup en Android Studio en 2025.