[英]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.