- package de.scrolltest;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.drawable.Drawable;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.ScaleGestureDetector;
- import android.view.ScaleGestureDetector.SimpleOnScaleGestureListener;
- import android.view.View;
- public class GestureDetectView extends View {
- private static final String TAG = "GestureDetectView";
- private ScaleGestureDetector _gestureDetector;
- private float _scaleFactor = 1.0f;
- private SimpleOnScaleGestureListener _simpleListener
- = new ScaleGestureDetector.SimpleOnScaleGestureListener() {
- @Override
- public boolean onScaleBegin(ScaleGestureDetector detector) {
- Log.d(TAG, "onScaleBegin : "+ detector.getScaleFactor());
- invalidate();
- return super.onScaleBegin(detector);
- }
- @Override
- public void onScaleEnd(ScaleGestureDetector detector) {
- Log.d(TAG, "onScaleEnd : "+ detector.getScaleFactor());
- _scaleFactor *= detector.getScaleFactor();
- invalidate();
- super.onScaleEnd(detector);
- }
- @Override
- public boolean onScale(ScaleGestureDetector detector) {
- Log.d(TAG, "onScale : "+ detector.getScaleFactor());
- _scaleFactor *= detector.getScaleFactor();
- invalidate();
- if(detector.getScaleFactor()>1){
- Log.d(TAG, "##ZOOM IN onScale : "+ detector.getScaleFactor());
- }else{
- Log.d(TAG, "##ZOOM OUT onScale : "+ detector.getScaleFactor());
- }
- return true;
- };
- };
- public GestureDetectView(Context context) {
- super(context);
- _gestureDetector = new ScaleGestureDetector(context, _simpleListener);
- }
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- _gestureDetector.onTouchEvent(ev);
- return true;
- }
- }