繁体   English   中英

如何删除 LinearLayout 内的 ImageView

[英]How to remove a ImageView inside of LinearLayout

在我的应用程序中,我从图库中选择照片并以编程方式将它们插入到LinearLayout ,所以我这样做了:

<LinearLayout
            android:orientation="horizontal"
            android:id="@+id/linearImages"
            android:layout_width="wrap_content"
            android:layout_height="150dp">
            <Button
                android:layout_gravity="center"
                android:id="@+id/add_btn"
                android:gravity="center"
                android:drawableLeft="@drawable/add_icon"
                android:layout_marginLeft="10dp"
                android:layout_marginStart="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

我为我要放置的照片设置了一个标签:

public void AddNewImages(Context context,Bitmap bitmap){
    ImageView img = new ImageView(context);
    img.setScaleType(ImageView.ScaleType.FIT_XY);
    img.setImageBitmap(bitmap);
    img.setTag(tagCount);
    linearImages.addView(img);
    bitmapArray.add(bitmap);
    tagCount++;
}

我想通过点击删除图像,正如我之前所说,图像是以编程方式添加的,所以我需要一些东西来一张一张地删除图像而没有静态图像位置。

我建议使用RecyclerView代替LinearLayout 原因是您可以轻松获得单击的项目的位置并可以相应地删除。 如果您想使用自己的解决方案,那么我建议在添加的每个ImageView上添加setOclickListener 在单击事件之后的侦听器中获取imagView.getTag() ,这是图像视图在LinearLayout的位置。 然后,您可以使用以下命令从LinearLayout删除图像视图:

ll.removeViewAt(position);// to remove view from particular position

或者,如果您想删除直接单击的ImageView ,则:

ll.removeView(view)// to remove particular view

更新您的 AddNewImages 代码它将起作用。

public void AddNewImages(Context context,Bitmap bitmap){
        ImageView img = new ImageView(context);
        img.setScaleType(ImageView.ScaleType.FIT_XY);
        img.setImageBitmap(bitmap);
        img.setTag(tagCount);
        linearImages.addView(img);
        bitmapArray.add(bitmap);
        tagCount++;
        img.setOnClickListener(clickListner);
        View.OnClickListener clickListner=new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                linearImages.removeView(v);
            }
        };
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM