android - how to add pinch to zoom textview in viewpager? -


i searched many blogs regarding pinch zoom textview in viewpager. found many answers pinch zoom imageview.

how can add pinch zoom in viewpager.

here links, read before posting:

updated

@override protected boolean canscroll(view v, boolean checkv, int dx, int x, int y) {     if (v instanceof touchimageview) {         return ((touchimageview) v).canscrollhorizontallyfroyo(-dx);     } else {         return super.canscroll(v, checkv, dx, x, y);     } } 

i getting error in if (v instanceof touchimageview) . error message says ,touchimageview cannot resolved

create private class simpleonscalegesturelistener extends simpleonscalegesturelistener in activity this

public class simpleonscalegesturelistener extends         scalegesturedetector.simpleonscalegesturelistener {      float scalefactor;      @override     public boolean onscale(scalegesturedetector detector) {          scalefactor *= detector.getscalefactor();         if(istablet(getapplicationcontext())){             setfontstyleandsizetab();         }else{             setfontstyleandsize();         }         scalefactor = math.max(15.0f, math.min(scalefactor,36.0f));          view view=pager.getfocusedchild().findviewbyid(r.id.article_content)  ;          view article_intro=pager.getfocusedchild().findviewbyid(r.id.article_intro)  ;           viewgroup group = (viewgroup) view;          int count=group.getchildcount();         for(int i=0;i<count;i++){             view child=group.getchildat(i);               if(child instanceof textview){                   textview textview=(textview)child;                   textview.settextsize(scalefactor);                }            }         return true;     } } 

inside onscale function doing getting scalefactor first , setting limits zooming text. here textsize minimum 15 , maximum 36.
next line appling pinch zoom textview inside viewpager.

view view=pager.getfocusedchild().findviewbyid(r.id.article_content); 

in first obtaining viewpager current item calling pager.getfocusedchild() obtaining linearlayout contains textviews want zoom.

you can pass textview ids directly there. @ runtime adding textviews layout why follow this.
if want zoom mutilple textviews @ time have same parent can follow or can create multiple view instance passing textview id directly.

textview.settextsize(scalefactor); 

here applying scaling textview

you must override method detect touch event viewpager

@override public boolean dispatchtouchevent(motionevent ev) {      super.dispatchtouchevent(ev);     return scalegesturedetector.ontouchevent(ev);  } 

and in oncreate() create scalegesturedetector instance this:

scalegesturedetector = new scalegesturedetector(this, new simpleonscalegesturelistener()); 

now can apply smooth zooming in viewpager.


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -