Android Image Dialog / Popup

¿Es posible tener sólo una imagen popup / come-up en una aplicación de Android? Es similar a una anulación de la vista normal de un AlertDialog para que contenga sólo una imagen y nada más.

SOLUCIÓN: He podido encontrar una respuesta gracias a la ayuda de @ blessenm. Enmascarar una actividad como diálogo parece ser la forma ideal. El siguiente es el código que he usado. Esta actividad de estilo de diálogo puede ser invocada según sea necesario por la aplicación de la misma manera que se iniciaría una nueva actividad

ImageDialog.java

public class ImageDialog extends Activity { private ImageView mDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_dialog_layout); mDialog = (ImageView)findViewById(R.id.your_image); mDialog.setClickable(true); //finish the activity (dismiss the image dialog) if the user clicks //anywhere on the image mDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } } 

Your_dialog_layout.xml

 <?xml version="1.0" encoding="UTF-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/image_dialog_root" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/transparent" android:gravity = "center"> <ImageView android:id="@+id/your_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src = "@drawable/your_image_drawable"/> </FrameLayout> 

Es crucial que establezca el estilo siguiente para la actividad para lograr esto:

Styles.xml

  <style name="myDialogTheme" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowFrame">@null</item> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowContentOverlay">@null</item> </style> 

El paso final es declarar este estilo para la actividad en el manifiesto como sigue:

  <activity android:name=".ImageDialog" android:theme="@style/myDialogTheme" /> 

Si sólo desea utilizar un diálogo de tipo notmal, algo así debería funcionar

 Dialog settingsDialog = new Dialog(this); settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.image_layout , null)); settingsDialog.show(); 

Image_layout.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="YOUR IMAGE"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK" android:onClick="dismissListener"/> </LinearLayout> 

No xml:

 public void showImage() { Dialog builder = new Dialog(this); builder.requestWindowFeature(Window.FEATURE_NO_TITLE); builder.getWindow().setBackgroundDrawable( new ColorDrawable(android.graphics.Color.TRANSPARENT)); builder.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialogInterface) { //nothing; } }); ImageView imageView = new ImageView(this); imageView.setImageURI(imageUri); builder.addContentView(imageView, new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); builder.show(); } 

La manera más flexible y recomendada es utilizar DialogFragment. Si desea admitir versiones anteriores a 3.0, puede utilizar la biblioteca de compatibilidad

Hay un par de maneras de hacerlo. Pero si estás buscando que tu imagen aparezca flotando por encima de tu actividad actual, puedes usar una actividad con android: theme = "@ style / Theme.Transparent" definida en el manifiesto. Luego, diseñe su diseño para tener sólo un único ImageView situado en el centro de la pantalla. El usuario tendrá que presionar el botón de retroceso para salir de esto, pero suena como eso es lo que quieres.

Si desea que se vea como un cuadro de diálogo real, siempre se puede utilizar una actividad de estilo de diálogo así como Theme.Dialog. O bien, sólo puede usar un diálogo y personalizarlo.

Sin utilizar el cuadro de diálogo puede utilizar esta biblioteca para hacer emergente de imágenes muy fácilmente.

https://github.com/chathuralakmal/AndroidImagePopup

  • Problema con CoordinatorLayout y ImageView que ajusta el ancho mientras se desplaza
  • ImageView en cambio de orientación - Drawable ignora setBounds y vuelve al estado original
  • ¿Cómo puedo alinear una imagen dentro de un ImageView a la parte inferior del ImageView?
  • Outofmemeoryerror (viewpager + visiones de imagen)
  • Android: Bitmap a Byte Array y espalda: SkImageDecoder :: Factory devuelto null
  • Cambio de imagen en ImageView
  • Las imágenes de gridview de Android en caché, en las imágenes de desplazamiento se repiten antes de ser reemplazadas
  • ImageView en ListView que amplía el ancho máximo
  • ¿Cómo saber si dos imágenes se intersecan mientras una imagen se mueve en android?
  • Despliegue y alineación de la distribución relativa de Android
  • La altura de gridView es demasiado alta cuando se utiliza una imagen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.