web-dev-qa-db-fra.com

Comment mettre une image dans un AlertDialog? Android

Je ne sais pas comment mettre une image dans un AlertDialog.

J'ai ce code, mais je pense que ce n'est pas possible.

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();
24
fr4n

Créer une sample.xml et ajoutez ImageView dans ce 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>

Code 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();
65
Niranj Patel

Vous pouvez le faire de la manière suivante. Cela affichera un alertDialog avec un message (si vous n'avez pas besoin du message, supprimez simplement cette ligne) et l'image (et un bouton OK):

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();
26
Miguel Rivero

il existe une autre option, vous pouvez mettre une image dans la boîte de dialogue d'alerte sans créer de fichier 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();
9
Juned

Pour les images, je fais juste ça:

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