java - Image with caption Android Viewpager -
i new android programming.i have gallery images , when click on 1 image should appear viewpager full screen image , caption , can slide through whole gallery. have follow tutorial enter link description here difference images stored in array well, caption. when run app gallery showing viewpager empty , not sliding. have no errors, have no idea should wrong. in advance :)
fullscreenimageadapter.java
package com.example.sherlockholmes.images; import android.app.activity; import android.content.context; import android.support.v4.view.pageradapter; import android.support.v4.view.viewpager; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.button; import android.widget.imageview; import android.widget.relativelayout; import android.widget.textview; import com.example.sherlockholmes.r; public class fullscreenimageadapter extends pageradapter { private activity context; private layoutinflater inflater; private int _position; private integer[] mthumbids; private string[] description; public fullscreenimageadapter(activity context,integer[] mthumbids,string[] description){ this.context=context; this.mthumbids = mthumbids; this.description = description; } @override public int getcount() { return 0; } @override public boolean isviewfromobject(view view, object object) { return view == ((relativelayout) object); } @override public object instantiateitem(viewgroup container, int position) { inflater = (layoutinflater)context.getsystemservice(context.layout_inflater_service); view viewlayout = inflater.inflate(r.layout.layout_fullscreen_image, container, false); imageview imageview = (imageview) viewlayout.findviewbyid(r.id.full_image); textview textview = (textview) viewlayout.findviewbyid(r.id.item_text); button btnclose = (button) viewlayout.findviewbyid(r.id.btnclose); imageview.setimageresource(mthumbids[_position]); textview.settext(description[_position]); btnclose.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { context.finish(); } }); ((viewpager) container).addview(viewlayout,0); return viewlayout; } @override public void destroyitem(viewgroup container, int position, object object) { ((viewpager) container).removeview((relativelayout) object); } }
fullscreenviewactivity.java
package com.example.sherlockholmes.images; import android.app.activity; import android.content.intent; import android.os.bundle; import android.support.v4.view.viewpager; import com.example.sherlockholmes.r; public class fullscreenviewactivity extends activity{ private fullscreenimageadapter adapter; private viewpager viewpager; private integer[] mthumbids = { r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, r.drawable.acd1, }; private string[] description={ "apple","pinaple","rose","strawberry", "orange","lemon","potato","banana" }; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_fullscreen_view); viewpager = (viewpager) findviewbyid(r.id.pager); intent = getintent(); int position = i.getintextra("position", 0); adapter = new fullscreenimageadapter(fullscreenviewactivity.this,mthumbids,description); viewpager.setadapter(adapter); // displaying selected image first viewpager.setcurrentitem(position); } }
try
@override public int getcount() { return mthumbids.length; }
instead of
@override public int getcount() { return 0; }
in fullscreenimageadapter
and change this
@override public void destroyitem(viewgroup container, int position, object object) { ((viewpager) container).removeview((relativelayout) object); }
with
@override public void destroyitem(viewgroup container, int position, object object) { ((viewpager) container).removeview((view) object); }
and change this
@override public boolean isviewfromobject(view view, object object) { return view == ((relativelayout) object); }
with
@override public boolean isviewfromobject(view view, object object) { return view == ((view) object); }
update: need change
imageview.setimageresource(mthumbids[_position]); textview.settext(description[_position]);
with
imageview.setimageresource(mthumbids[position]); textview.settext(description[position]);
in fullscreenimageadapter
.it's becoz have not initialized _position , that's why view pager fetch image , caption array @ position 0.
Comments
Post a Comment