簡體   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