2011-06-08 282 views
19

No sé cómo poner una imagen en un AlertDialog.¿Cómo poner una imagen en un AlertDialog? Android

Tengo este código, pero creo que esto no es posible.

AlertDialog.Builder alert = new AlertDialog.Builder(MessageDemo.this);  
ImageView imageView = (ImageView) findViewById(R.id.imageView1);  
imageView.setImageResource(R.drawable.cw);    
alert.setView(imageView);  
alert.setNeutralButton("Here!", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dlg, int sumthin) { 

    } 
});  
alert.show(); 

Respuesta

54

Crea uno sample.xml y agrega ImageView en ese XML.

sample.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <ImageView 
     android:id="@+id/dialog_imageview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

Código Java:

AlertDialog.Builder alertadd = new AlertDialog.Builder(MessageDemo.this); 
LayoutInflater factory = LayoutInflater.from(MessageDemo.this); 
final View view = factory.inflate(R.layout.sample, null); 
alertadd.setView(view); 
alertadd.setNeutralButton("Here!", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dlg, int sumthin) { 

       } 
      }); 

alertadd.show(); 
+0

me muestra un error: No se pudo ejecutar el método de la actividad – fr4n

+0

¿Has probado mi nuevo código? –

+0

Sí, su actualización. Tengo un nuevo xml "sample.xml" con una imagen y un botón. Pero me da un error. – fr4n

6

hay una otra opción que puede poner una imagen en el diálogo de alerta sin crear un archivo XML.

AlertDialog.Builder builder=new AlertDialog.Builder(DialogActivity.this); 
    builder.setCancelable(true); 
    builder.setIcon(R.drawable.your image name); 
    builder.setTitle("Incoming Call"); 
    builder.setInverseBackgroundForced(true); 
    builder.setPositiveButton("Accept",new DialogInterface.OnClickListener() 
    { 

     @Override 
     public void onClick(DialogInterface dialog, int which) 
     { 
      dialog.dismiss(); 
     } 
    }); 
    builder.setNegativeButton("Reject",new DialogInterface.OnClickListener() 
    { 

     @Override 
     public void onClick(DialogInterface dialog, int which) 
     { 
      dialog.dismiss(); 
     } 
    }); 
    AlertDialog alert=builder.create(); 
    alert.show(); 
18

Puede hacerlo de la siguiente manera. Esto mostrará una alertDialog con un mensaje (si es que no es necesario el mensaje, basta con retirar esa línea) y la imagen (y un botón Aceptar):

ImageView image = new ImageView(this); 
image.setImageResource(R.drawable.YOUR_IMAGE_ID); 

AlertDialog.Builder builder = 
     new AlertDialog.Builder(this). 
     setMessage("Message above the image"). 
     setPositiveButton("OK", new OnClickListener() {      
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
      } 
     }). 
     setView(image); 
builder.create().show(); 
+5

¿Cómo mover el mensaje en la parte inferior? – user2872856

2

para una imagen que acabo de hacerlo

public void onClick (View view){ new AlertDialog.Builder(this).setView (R.layout.your_layout).show();

Cuestiones relacionadas