JavascriptProva

domenica 18 settembre 2016

Zooming di un'immagine.

Questo codice identifica meglio le costanti per gli eventi su e giù del secondo puntatore:
    public boolean onTouchEvent(MotionEvent event){
        int action=event.getAction() & MotionEvent.ACTION_MASK;
        switch(action){
            case MotionEvent.ACTION_DOWN:
                lastX=event.getX();
                lastY=event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                posX+=event.getX()-lastX;
                posY+=event.getY()-lastY;
                invalidate();
                lastX=event.getX();
                lastY=event.getY();
                break;
            case MotionEvent.ACTION_POINTER_DOWN:
                System.out.println("SECONDO PUNTATORE GIU'");
                break;
            case MotionEvent.ACTION_POINTER_UP:
                System.out.println("SECONDO PUNTATORE SU");

        }

        return true;
    }

Zooming.

Questa è la costruzione di un listener:
    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener{

        @Override
        public boolean onScale(ScaleGestureDetector detector){
            mScaleFactor=detector.getScaleFactor();
            invalidate();
            return true;
        }
    }
E' da vedere come viene istanziata questa classe.
Viene dichiarata una variabile di tipo ScaleGestureDetector.
private ScaleGestureDetector mScaleDetector;
Ah, ecco: nel contesto del costruttore viene messa un'istanza anonima della classe ScaleListener.
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
Ossia si crea un nuovo ScaleGestureDetector con quel determinato listener.

Questo ScaleGestureDetector viene posto nell'evento onTouchEvent dove viene evocato il suo metodo onTouchEvent.

Ricominciamo...

No, ho dimenticato questi importanti dettagli:
    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener{
        @Override
        public boolean onScale(ScaleGestureDetector detector){
            mScaleFactor*=detector.getScaleFactor();
            invalidate();
            return true;
        }
    }
Alla fine sono riuscito a zoomarla.

Mandala!
Cancello e riscrivo.

Ho fatto tre mandala.
Dovrei averla memorizzata abbastanza, ma sono necessari altri mandala successivi.

Nessun commento:

Posta un commento