2016-04-30 16 views
0

Ich habe eine Gridview in meiner XML-Datei, in der mehrere Bilder gespeichert sind. Wenn Sie auf ein einzelnes Bild klicken, wird ein Warndialogfeld mit einer Bildansicht angezeigt. Ich möchte dieses bestimmte angeklickte Bild auf dieser Bildansicht zeigen. Wie kann ich das machen?Android Gridview und 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

Können Sie den vollständigen Code teilen gridview der Einstellung –

Antwort

0

Rufen Sie einfach diese Methode in Ihrem onItemClickListener(...). Ich denke, Sie haben Datensatz in der picturebean. So können Sie hier Ihr imagePath/Bitmap erhalten.

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

     } 
    }); 
} 

Hier ist das XML für den Dialog.

<?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

seine ziemlich einfach hier, wie Sie diese

tun können
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

wie pro Ihre Führung i this- iv.setImageResource (IList [arg2 geschrieben haben ]) aber immer noch zeigt es einen Fehler. hilf mir bald ... – neha

+0

Was ist der Fehler, den du bekommst? – Max