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();
21
demandé sur blizzard 2011-06-08 13:07:01

6 réponses

Créez un sample.xml et ajoutez ImageView dans ce XML.

De l'Échantillon.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>

Le 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();
57
répondu Niranj Patel 2016-12-07 12:18:47

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();
20
répondu Miguel Rivero 2016-07-01 07:18:30

Il y a une autre option, vous pouvez mettre une image dans la boîte de dialogue d'alerte sans créer un 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();
7
répondu juned 2012-02-07 10:48:37
2
répondu Lavanya 2011-06-08 09:14:59

Pour L'Image, je le fais juste

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

2
répondu Wallace Roberto 2016-10-11 02:35:15

En plus des autres réponses, je veux ajouter le point que vous ne devriez pas être obligé d'utiliser AlertDialog. Par exemple, dans mon cas, je veux montrer seulement imageView dans une boîte de dialogue et AlertDialog n'a pas fonctionné pour ce cas. La solution ci-dessous a fonctionné pour moi:

LayoutInflater factory = LayoutInflater.from(context);
final View view = factory.inflate(R.layout.myphoto_layout, null);
Dialog dialog = new Dialog(context);
dialog.setContentView(view);
dialog.show();

Myphoto_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<ImageView
    android:id="@+id/iv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/someImage" />

Si vous souhaitez ajouter une image à votre mise en page dynamiquement, vous pouvez utiliser le code ci-dessous:

ImageView iv = view.findViewById(R.id.iv); // id of your imageView element
iv.setImageBitmap(itmap);
0
répondu oiyio 2018-09-08 22:49:23