2016-04-30 2 views
0

У меня есть gridview в моем XML-файле, в котором хранятся несколько изображений. При нажатии на одно изображение появляется диалоговое окно с изображением. Я хочу показать это конкретное нажатое изображение на этом изображении. Как я могу это сделать?Android Gridview и ImageView

gv.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      final picturebean pb=ilist.get(arg2); 
      AlertDialog.Builder abpic=new AlertDialog.Builder(ShowPicActivity.this); 
      abpic.setTitle("Pic View"); 
      abpic.setCancelable(true); 
      LayoutInflater li=getLayoutInflater(); 
      View vi = li.inflate(R.layout.picmenu, null); 
      abpic.setView(vi); 
      ImageView iv=(ImageView)vi.findViewById(R.id.imageView1); 
+0

Вы можете поделиться полный код установки GridView –

ответ

0

Просто позвоните этому методу в onItemClickListener(...). Я думаю, у вас есть набор данных в picturebean. поэтому здесь вы можете получить свой imagePath/Bitmap.

public void showDialogImage(String imageName //Bitmap img) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setPositiveButton("Nice Image", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
     } 
    }).setNegativeButton("Not like", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
     } 
    }); 
    final AlertDialog dialog = builder.create(); 
    LayoutInflater inflater = getLayoutInflater(); 
    View dialogLayout = inflater.inflate(R.layout.go_pro_dialog_layout, null); 
    dialog.setView(dialogLayout); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    dialog.show(); 

    dialog.setOnShowListener(new DialogInterface.OnShowListener() { 
     @Override 
     public void onShow(DialogInterface d) { 
      ImageView image = (ImageView) dialog.findViewById(R.id.goProDialogImage); 
      //If you have imagepath than do like this else you set the bitmap directly to the imageView. 
      Bitmap icon = BitmapFactory.decodeResource(imageName); 
      float imageWidthInPX = (float) image.getWidth(); 

      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(Math.round(imageWidthInPX), 
        Math.round(imageWidthInPX * (float) icon.getHeight()/(float) icon.getWidth())); 
      image.setLayoutParams(layoutParams); 

     } 
    }); 
} 

Адрес этой страницы: xml.

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

    <ImageView 
    android:id="@+id/goProDialogImage" 
    android:layout_width="wrap_content" 
    android:layout_height="350dp" 
    android:src="@drawable/whygoprodialogimage"/> 
</LinearLayout> 
0

его довольно просто здесь, как вы можете это сделать

gv.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     final picturebean pb=ilist.get(arg2); 
     AlertDialog.Builder abpic=new AlertDialog.Builder(ShowPicActivity.this); 
     abpic.setTitle("Pic View"); 
     abpic.setCancelable(true); 
     LayoutInflater li=getLayoutInflater(); 
     View vi = li.inflate(R.layout.picmenu, null); 
     abpic.setView(vi); 
     ImageView iv=(ImageView)vi.findViewById(R.id.imageView1); 
     iv.setImageResource(listofimages[position]); 
     // Here listofimages is the List or Arraylist from where you adding images to gridview 
+0

в соответствии с вашим руководством я написал this- iv.setImageResource (IList [arg2 ]) , но все же отображается ошибка. помогите мне скоро ... – neha

+0

какая ошибка вы получаете? – Max

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