Android Open Source - Android-Gestures Gesture View






From Project

Back to project page Android-Gestures.

License

The source code is released under:

Copyright (c) 2010, Michael Marner (michael@20papercups.net) All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the fol...

If you think the Android project Android-Gestures listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (c) 2010, Michael Marner (michael@20papercups.net) 
 * All rights reserved./*  w  w  w.  java  2  s.c o  m*/
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the <organization> nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package com.michaelmarner.gesturedemo;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.MotionEvent;
import android.view.View;
import com.michaelmarner.gestures.*;
import java.util.*;

public class GestureView extends View {

  private Gesture currentGesture;
  private GestureMode opMode;
  private LinkedList<GestureListener> listeners;
  
  public GestureView(Context context) {
    super(context);
    listeners = new LinkedList<GestureListener>();
    currentGesture = new Gesture();
  }
  public GestureView(Context context, android.util.AttributeSet as) {
    super(context, as);
    listeners = new LinkedList<GestureListener>();
    currentGesture = new Gesture();
  }
  
  public void addListener(GestureListener l) {
    this.listeners.add(l);
  }
  
  protected void onDraw(Canvas c) {
    c.drawRGB(60, 60, 60);
    Paint paint = new Paint();
    paint.setColor(Color.RED);
    paint.setStrokeWidth(2);
    paint.setStyle(Style.STROKE);
    List<Point> points = currentGesture.getPoints();
    for (int i=1; i < points.size(); ++i) {
      Point p0 = points.get(i-1);
      Point p1 = points.get(i);
      c.drawLine(p0.x, p0.y, p1.x, p1.y, paint);
    }
  }
  
  public boolean onTouchEvent(MotionEvent e) {
    invalidate();
    switch (e.getAction()) {
      
    case MotionEvent.ACTION_DOWN:

      currentGesture.add(new Point(e.getX(), e.getY()));
      break;
      
    case MotionEvent.ACTION_MOVE:
      currentGesture.add(new Point(e.getX(), e.getY()));
      break;
      
    case MotionEvent.ACTION_UP:
      currentGesture.add(new Point(e.getX(), e.getY()));
      for (GestureListener l : listeners) {
        if (l != null)
          l.handleGesture(currentGesture);
      }
      currentGesture = new Gesture();
      break;
    }
    return true;
  }

}




Java Source Code List

com.michaelmarner.gesturedemo.GestureListener.java
com.michaelmarner.gesturedemo.GestureMode.java
com.michaelmarner.gesturedemo.GestureView.java
com.michaelmarner.gesturedemo.Gestures.java
com.michaelmarner.gestures.BoundingBox.java
com.michaelmarner.gestures.GestureEngine.java
com.michaelmarner.gestures.GestureMatch.java
com.michaelmarner.gestures.Gesture.java
com.michaelmarner.gestures.Point.java