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