In the upload of multiple images we usually choose a lot of pictures, and then we can long press one of the pictures, when all the pictures will show a deleted corner, we click on one of them can delete the image, the effect of the picture:
The code is easy to read and posted directly:
Package Zm.imageview;
Import android.app.Activity;
Import Android.content.Context;
Import Android.os.Bundle;
Import Android.view.LayoutInflater;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.AdapterView;
Import Android.widget.BaseAdapter;
Import Android.widget.GridView;
Import Android.widget.ImageView;
Import Android.widget.TextView;
Import Android.widget.Toast;
Import Com.squareup.picasso.Picasso;
Import java.util.ArrayList;
Import java.util.List;
public class Mainactivity extends activity {
Private Boolean isshowdelete = false;
Private GridView GV;
Private Gridviewadapter Mgridadapter;
Private list<areaentity> areaeneities = new arraylist<areaentity> ();
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
GV = (GridView) Findviewbyid (R.ID.GV);
for (int i = 0; i < i++) {
Areaentity areaentity = new Areaentity (i + "", "http://img.tuku.cn/file_big/201504/ 024448d7ae994d4d9273ea5f3c199a5a.jpg "," landscape "+ i);
Areaeneities.add (areaentity);
}
Mgridadapter = new Gridviewadapter (areaeneities, mainactivity.this);
Gv.setadapter (Mgridadapter);
Gv.setonitemlongclicklistener (New Adapterview.onitemlongclicklistener () {
@Override
public Boolean Onitemlongclick (adapterview<?> parent, view view, int position, long ID) {
if (isshowdelete) {
Isshowdelete = false;
} else {
Isshowdelete = true;
}
Mgridadapter.setisshowdelete (Isshowdelete);
return true;
}
});
}
@Override
public void onbackpressed () {
super.onbackpressed ();
if (isshowdelete = = True) {
& nbsp; Isshowdelete = false;
Mgridadapter.setisshowdelete (false);
} else {
finish ();
}
}
class Gridviewadapter extends Baseadapter {
Private Boolean isshowdelete;//based on this Boolean variable to determine whether to display the delete icon, True is displayed, False is not displayed
Private list<areaentity> areaeneity;
private Layoutinflater minflater;
Private context mcontext;
Public Gridviewadapter (list<areaentity> areaeneities) {
Super ();
this.areaeneity = areaeneities;
This.minflater = Layoutinflater.from (context);
This.mcontext = context;
}
public void Setisshowdelete (Boolean isshowdelete) {
This.isshowdelete = Isshowdelete;
Notifydatasetchanged ();
}
@Override
public int GetCount () {
return Areaeneity.size ();
}
@Override
Public Object getitem (int position) {
return Areaeneity.get (position);
}
@Override
public long getitemid (int position) {
return position;
}
@Override
Public View GetView (final int position, View Convertview, ViewGroup parent) {
Viewholder Holder;
if (Convertview = = null) {
Convertview = minflater.inflate (R.layout.fragmet_grid_item, NULL);
Holder = new Viewholder ();
Holder.img = (ImageView) Convertview.findviewbyid (r.id.img);
HOLDER.NAME_TV = (TextView) Convertview.findviewbyid (R.ID.NAME_TV);
Holder.deleteview = Convertview.findviewbyid (R.id.delete_markview);
Convertview.settag (holder);
} else {
Holder = (viewholder) convertview.gettag ();
}
Picasso.with (Mcontext). Load (areaeneity.get (position). Getpic ()). into (HOLDER.IMG);
Holder.name_tv.setText (Areaeneity.get (position). Getarea ());
Holder.deleteView.setVisibility (isshowdelete?) View.VISIBLE:View.GONE);
Holder.deleteView.setOnClickListener (New View.onclicklistener () {
@Override
public void OnClick (View v) {
Toast.maketext (Mcontext, "you deleted the first" + areaeneity.get (position). GetId () + "Zhang", Toast.length_short). Show ();
Areaeneity.remove (Areaeneity.get (position));
Notifydatasetchanged ();
}
});
return convertview;
}
Class Viewholder {
Private View Deleteview;
Private ImageView img;
Private TextView Name_tv;
}
}
Class Areaentity {
Private String ID;
Private String pic;
Private String area;
Public areaentity (String ID, string pic, string area) {
This.id = ID;
This.pic = pic;
This.area = area;
}
Public String Getpic () {
return pic;
}
public void Setpic (String pic) {
This.pic = pic;
}
Public String getId () {
return ID;
}
public void SetId (String id) {
This.id = ID;
}
Public String Getarea () {
return area;
}
public void Setarea (String area) {
This.area = area;
}
}
}
The picture I'm showing is a random selection from the Internet, the loading framework is Picasso, and developers using Android Studio can introduce a line of code directly into dependencies:
Compile ' com.squareup.picasso:picasso:2.5.2 '
And don't forget to add network privileges.
<uses-permission android:name= "Android.permission.INTERNET" ></uses-permission>
OK, the function is realized.