Friday, April 5, 2013

[android-developers] How to do both Swiping and Zoom In and Out (using setBuilt In Zoom controls) in a Webview Android 2.2?

This is my Code i have done both SWIPING and ZOOM IN and ZOOM OUT functions. But both doesnt worked in my app inside webview.

My problem is, If i do comment this line, then Swiping works fine !

webSettings.setBuiltInZoomControls(true);

If i don't comment this above line, then Zoom In and Out is working fine but swiping does not works here !


public class ZoomInandOutActivity extends Activity {    private GestureDetector gestureDetector;    WebView webviewSwiping;    WebSettings webSettings;    String data1 = "<html>"  +  "<body><h1>Hello, Android Aspect!</h1></body>"  +  "</html>";    String data2 = "<html>"  +  "<body><h1>Hellos, Android Aspectz!</h1></body>"  +  "</html>";    /* The Minimum distance a finger must travel in order to register a swipe event */      private static final int SWIPE_MIN_DISTANCE = 120;      private static final int SWIPE_MAX_OFF_PATH = 250;      private static final int SWIPE_THRESHOLD_VELOCITY = 200;    /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      webviewSwiping=new WebView(this);      webSettings =webviewSwiping.getSettings();      webviewSwiping.setOnTouchListener(new View.OnTouchListener() {  @Override          public boolean onTouch(View v, MotionEvent event) {              return gestureDetector.onTouchEvent(event);          }      });   webSettings.setJavaScriptEnabled(true);   webSettings.setBuiltInZoomControls(true); // used for Zooming and scrolling    /* Gesture Detection */      gestureDetector=new GestureDetector(this, new MyGestureDetector());      setContentView(webviewSwiping);  }  class  MyGestureDetector extends SimpleOnGestureListener{      @Override      public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {           try {               if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)                    return false;            /* right to left swipe*/               if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {                   webviewSwiping.loadData(data1, "text/html", "UTF-8");                    Toast.makeText(ZoomInandOutActivity.this, "Left Swipe", Toast.LENGTH_LONG).show();               }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {                   webviewSwiping.loadData(data2, "text/html", "UTF-8");                    Toast.makeText(ZoomInandOutActivity.this, "Right Swipe", Toast.LENGTH_LONG).show();  }           } catch (Exception e) {               // nothing           }          return false;      }  }

What i wanted is, If i do left or right swipe at that time zoom in and out should not work. If i do Zoom in and out those webview contents at that time left and right swiping must not work.

Like, When i do enable Swiping, Zooming must be disabled and when i do Zooming enabled at this time Swiping event must be disabled !

Moreover, I have a doubt that can i be able to achieve this both events inside webview by using setBuiltInZoom controls in Android 2.2 ?

How shall i achieve this both events in webview??

Please kindly anyone help me !

Any help or suggestions would be highly appreciated, thanks !

--
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups "Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment