Android более плавный зум?

Я сделал свой собственный код для моей «реализации» функции масштабирования, и он работает, но совсем не удобен для пользователя. Часто очень спорадические и вообще некрасивые. Мне было интересно, может ли кто-нибудь из вас помочь мне, может быть, более простой способ или другой подход. Возможно, используя GestureListener, я не уверен, как его использовать. Любая помощь будет признательна.

Ниже мой текущий код:

    public boolean onTouchEvent(MotionEvent event) {
        float cr, cr2 = 0.0f;
        cx = new float[2];
        cy = new float[2];
        float zx;
        final int action = event.getAction();
        switch (action) {
        case MotionEvent.ACTION_DOWN: {
            break;
        }
        case MotionEvent.ACTION_POINTER_DOWN: {
            break;
            }
        case MotionEvent.ACTION_MOVE: {
            for (int i = 0; i<event.getPointerCount(); i++) {
            if (run == true) { //see if it is the first time running program and set orig to the scale / screen res 
            Orig = scale * 800; //800 = screen res
            }
            cx[i] = event.getX(i); //get x and y for each finger
            cy[i] = event.getY(i);

            cr = (cx[0] - cx[1])*(cx[0] - cx[1]) + (cy[0] - cy[1])*(cy[0] - cy[1]); //get the distance between pointers
            cr2 = FloatMath.sqrt(cr);

            if (run == true) {
            scale = cr2/800;
            run = false;
            }
            else {
                if (scale >=  550.0f) {
                    scale = 1.0f;
                }
                if (scale <= 0.0f) {
                    scale = 1.0f;
                }
                nScale = Orig/cr2;
                scale = nScale * 0.5f;

            }
            }}  

Это, вероятно, не лучший способ сделать это вообще. Даст ли получение среднего по нескольким событиям лучшие ответы?

Спасибо


person unknownone    schedule 16.08.2011    source источник


Ответы (1)


См. руководства по поддержке масштабирования в Sony Ericsson Developer World, надеюсь, они помогут вам в этом.

person Ziteng Chen    schedule 16.08.2011