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();
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();
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();
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();
Vérifier ceci: http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application
Peut-être que cela vous sera utile.
Pour L'Image, je le fais juste
public void onClick (View view){
new AlertDialog.Builder(this).setView
(R.layout.your_layout).show();
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);