2011-06-08 3 views
19

Я не знаю, как поместить изображение в AlertDialog.Как разместить изображение в AlertDialog? Android

У меня есть этот код, но я думаю, что это невозможно.

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

ответ

54

Создайте sample.xml и добавьте ImageView в том 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> 

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

показать мне ошибку: Не удалось выполнить способ действия – fr4n

+0

сделал ли мой новый код? –

+0

Да, ваше обновление. У меня есть новый xml "sample.xml" с изображением и кнопкой. Но это дает мне ошибку. – fr4n

6

есть еще один вариант, вы можете поместить изображение в диалоге предупреждения без создания файла 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

Вы могли бы сделать это следующим образом. Это покажет alertDialog с сообщением (если вам не нужно это сообщение, просто удалите эту строку) и изображение (и кнопка 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(); 
+5

Как перенести сообщение внизу? – user2872856

2

Для изображения я просто сделать это

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

Смежные вопросы