0

Ich habe die Liste der Bilder im horizontalen LinearLayout Wenn ich bestimmtes Bild anklicke, erscheint das selbe Bild oben auf Einzelbildansicht. Wie bekomme ich die Position von Bildern in der Bildansicht?Wie man dasselbe Bild in ImageView anzeigt, wenn ich auf die horizontalen Bilder in android klicke

CODE

JSONArray multipleimage = alertObj.getJSONArray(PRODUCT_IMAGES); 

/*JSONObject singleimage = multipleimage.getJSONObject(Integer.parseInt("original_res")); 
String singleimg = productpath + alertObj.getString("seller_id") + String.valueOf(singleimage); 
firstimages=(ImageView) 

findViewById(R.id.singleimage); 

YelloPage.imageLoader.displayImage(singleimg,firstimages,options);*/ 

horizontalimage=(LinearLayout) findViewById(R.id.linearimage); 

if(multipleimage.length()>0) 

{ 
    for (int j = 0; j < multipleimage.length(); j++) { 
     JSONObject pimages = multipleimage.getJSONObject(j); 
     JSONObject oneimage = multipleimage.getJSONObject(0); 
     ii = new ImageView(singleshooppingcart.this); 
     multipleimages = (ImageView) findViewById(R.id.singleimage); 
     ii.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     LinearLayout.LayoutParams image = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     image.width = 150; 
     image.height = 150; 
     image.setMargins(5, 0, 0, 0); 
     String multimgs = pimages.getString("original_res"); 
     String oneimg = oneimage.getString("original_res"); 
     String[] img2 = multimgs.split("\\."); 
     String imagone = productpath + alertObj.getString("seller_id") + '/' + img2[0] + '(' + '2' + '0' + '0' + ')' + '.' + img2[1]; 
     String singleiamges = productpath + alertObj.getString("seller_id") + '/' + oneimg; 
     YelloPage.imageLoader.displayImage(imagone, ii, options); 
     YelloPage.imageLoader.displayImage(singleiamges, multipleimages, options); 
     ii.setLayoutParams(image); 
     horizontalimage.addView(ii); 
     ii.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 


      } 
     }); 
    } 
} 

, wie dieses Problem Vielen Dank im Voraus zu lösen.

Antwort

0

Sie viele Ansätze für this-

können
  1. einfachste Ansatz ViewGroup#indexOfChild(View child) Methode verwendet. Dies wird einfach zurückgeben, was Sie wollen.

  2. Oder können Sie View#setTag(Object) und View#getTag() verwenden, besonders, wenn Sie in onClick einige etwas mehr als bloße Index erhalten möchten.

  3. Sie können auch View#setTag(int, Object) und View#getTag(int) verwenden, wenn Sie mehr als ein Tag pro Ansicht festlegen möchten.

Hoffnung unter Codebeispiel für den ersten Ansatz helps-

ii.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick (View view){ 
    // the parameter view here is your imageview, which is clicked. 
    // horizontalimage is your LinearLayout, which is a ViewGroup 
    int indexOfImage = horizontalimage.indexOfChild(view); 
    // do what you want to do with index 
    } 
}); 
+0

Ich habe das nicht bekommen – Nivethitha

+0

@Niv ethitha hat einen Beispielcode hinzugefügt. Hoffe das hilft. –

+0

Ich schrieb Code wie folgt: int indexOfImage = horizontalimage.IndexOfChild (view); Zeichenfolge img1 = String.valueOf (indexOfImage); YelloPage.imageLoader.displayImage (img1, mehrere Bilder, Optionen); aber ich habe Fehler – Nivethitha

0

nicht so tested..try ...

JSONArray multipleimage = alertObj.getJSONArray(PRODUCT_IMAGES); 

/*JSONObject singleimage = multipleimage.getJSONObject(Integer.parseInt("original_res")); 
String singleimg = productpath + alertObj.getString("seller_id") + String.valueOf(singleimage); 
firstimages = (ImageView)findViewById(R.id.singleimage); 

YelloPage.imageLoader.displayImage(singleimg,firstimages,options);*/ 
horizontalimage = (LinearLayout)findViewById(R.id.linearimage); 

if(multipleimage.length()>0) 
{ 
    for (int j = 0; j < multipleimage.length(); j++) { 
     JSONObject pimages = multipleimage.getJSONObject(j); 
     JSONObject oneimage = multipleimage.getJSONObject(0); 
     ii = new ImageView(singleshooppingcart.this); 
     multipleimages = (ImageView) findViewById(R.id.singleimage);    
     ii.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     LinearLayout.LayoutParams image = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     image.width = 150; 
     image.height = 150; 
     image.setMargins(5, 0, 0, 0); 
     String multimgs = pimages.getString("original_res"); 
     String oneimg = oneimage.getString("original_res"); 
     String[] img2 = multimgs.split("\\."); 
     String imagone = productpath + alertObj.getString("seller_id") + '/' + img2[0] + '(' + '2' + '0' + '0' + ')' + '.' + img2[1]; 
     String singleiamges = productpath + alertObj.getString("seller_id") + '/' + oneimg; 
     YelloPage.imageLoader.displayImage(imagone, ii, options); 
     YelloPage.imageLoader.displayImage(singleiamges, multipleimages, options); 
     ii.setLayoutParams(image); 
     horizontalimage.addView(ii); 
     ii.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       multipleimages.setImageURI (singleiamges);  
      } 
     }); 
    } 
} 
+0

Ist es Integer- oder String positionofserverimage – Nivethitha

+0

@ Nivethitha..Yes! –

+0

Wie kann ich die Bildansicht (multipleimages = (ImageView) findViewById (R.id.SingleImage);) – Nivethitha

Verwandte Themen