gridview - android viewpager like image gallery -
im trying create image gallery.
i have viewpager each fragment contains image (swipable image gallery im trying accomplish). have gridview onitemclick triggers viewpager in selected position showing clicked image. problem 1 swipe right , 1 swipe left shows same image clicked one. ive tried setoffscreenpagelimit no success. viewpager activity:
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_image_gallery); helper = new weddhelper(this,"wedd.db",null,1); pager = (viewpager) findviewbyid(r.id.pager); pager.setonpagechangelistener(this); intent ing = getintent(); curr = ing.getintextra("curr", 0); byto = helper.getphotos(); count = byto.size(); fragmentmanager mg = getsupportfragmentmanager(); fragments = new vector<fragment>(); for(int = 0; i<count;i++){ fragments.add(fragment.instantiate(this,galleryfrag.class.getname())); } madapter = new fragmentadapter(getsupportfragmentmanager(), fragments, this); pager.setadapter(madapter); pager.setoffscreenpagelimit(1); pager.setcurrentitem(curr); } @override public void onpagescrolled(int position, float positionoffset, int positionoffsetpixels) { } @override public void onpageselected(int position) { mcurrentposition = position; curr = position; } @override public void onpagescrollstatechanged(int state) { } public int getclicked(){ return curr; } public byte[] getphototobedisplayed(){ return byto.get(curr); } } this custom adapter:
public class fragmentadapter extends fragmentstatepageradapter { private list<fragment> fragments=null; private fragmentmanager fragmentmanager=null; private context context; public fragmentadapter(fragmentmanager fragmentmanager,list<fragment> fragments, context context) { super(fragmentmanager); this.fragments=fragments; this.fragmentmanager=fragmentmanager; this.context = context; } @override public fragment getitem(int position) { return fragments.get(position); } @override public int getcount() { return fragments.size(); } @override public void setprimaryitem(viewgroup container, int position, object object) { super.setprimaryitem(container,0,object); } @override public void notifydatasetchanged() { super.notifydatasetchanged(); } @override public void destroyitem(viewgroup collection, int position, object view) { fragmentmanager.executependingtransactions(); fragmentmanager.savefragmentinstancestate(fragments.get(position)); } public void replaceitem(int position,fragment fragment) { fragments.set(position, fragment); this.notifydatasetchanged(); } } and fragment:
public class galleryfrag extends fragment { weddhelper helper; @nullable @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = inflater.inflate(r.layout.gallery_fragment, container, false); imagegallery myactivity = (imagegallery) getactivity(); int curr = myactivity.getclicked(); byte[] phototobedisplayed = myactivity.getphototobedisplayed(); helper = new weddhelper(getactivity(),"wedd.db", null, 1); arraylist<byte[]> imgs = helper.getphotos(); bitmap br = bitmapfactory.decodebytearray(phototobedisplayed,0,phototobedisplayed.length); bitmap bi = bitmapfactory.decodebytearray(imgs.get(curr),0,imgs.get(curr).length); toast.maketext(getactivity(), curr+"this frag", toast.length_short).show(); imageview iv = (imageview) v.findviewbyid(r.id.fragimage); iv.setimagebitmap(br); return v; } }
Comments
Post a Comment