如果我单击 android 中的水平图像,如何在 ImageView 中显示相同的图像

How to display same image in ImageView if I click on the horizontal images in android

我在水平 LinearLayout 中有图像列表 如果我单击特定图像,同一图像将出现在单个图像视图的上方。 如何获取图像在图像视图中的位置。

代码

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


            }
        });
    }
}

如何解决这个问题提前致谢。

未测试..尝试这样...

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

您可以为此使用多种方法-

  1. 最简单的方法是使用 ViewGroup#indexOfChild(View child) 方法。这将只是 return 你想要的。

  2. 或者你可以使用 View#setTag(Object)View#getTag(),特别是如果你想在 onClick.

    中获得一些不仅仅是索引的东西
  3. 如果您想为每个视图设置多个标签,您也可以使用 View#setTag(int, Object)View#getTag(int)

希望下面的示例代码对第一种方法有所帮助-

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