首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >放大ViewFlipper

放大ViewFlipper
EN

Stack Overflow用户
提问于 2013-05-01 19:47:11
回答 1查看 835关注 0票数 1

我试着这样做:zoom the imageview on the double click in viewflipper in android

我试着让代码适应我的项目,但它不起作用……

我这里的代码(我做错了什么?)

另外,我在onTouch事件中有"showNext“和"showPrev”的代码,也许是不兼容的?

代码语言:javascript
复制
public class PageActivity extends Activity implements OnTouchListener,, OnScaleGestureListener{


// Objetos del Layout, se asignarán los valores correspondientes en tiempo de ejecución.
private LinearLayout layMain;
private ViewFlipper vf;

//...

private ScaleGestureDetector mScaleDetector;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pageviewer);

    // Inicialización de variables y componentes del LinearLayout
    initialize();

    // Al principio se carga la primera página.
    loadPage(currPage);
}

private void initialize() {
    ...
    layMain = (LinearLayout) findViewById(R.id.pageviewerLayout);
    layMain.setOnTouchListener((OnTouchListener) this);


    mScaleDetector = new ScaleGestureDetector(this.getBaseContext(), (OnScaleGestureListener) this);

    vf = (ViewFlipper) findViewById(R.id.vfBookPage);
    ...
}


@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
    //Obtengo la acción realizada en el evento "onTouch".
    switch (arg1.getAction()){
    //Si sólo ha presionando la pantalla.
    case MotionEvent.ACTION_DOWN:{
        // Guardo el valor de X cuando el usuario presiona la pantalla.
        downXValue = arg1.getX();

        break;
    }

    case MotionEvent.ACTION_UP:{
        // Obtengo el valor de X cuando el usuario ya ha soltado el dedo de la pantalla.
        float currentX = arg1.getX(); 

        // Voy hacia atrás: El usuario a movido el dedo hacia la derecha.
        if (downXValue < currentX){
            currPage--;
            if(loadPage(currPage)){
                // Asigno la animación tipo "slide_right".
                vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_right));
                // Y muestro la página anterior.
                vf.showPrevious();
            }
        }

        // Voy hacia adelante: El usuario a movido el dedo hacia la izquierda.
        if (downXValue > currentX){
            currPage++;
            if(loadPage(currPage)){
                // Asigno la animación tipo "slide_left".
                vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_left));
                // Y muestro la siguiente página.
                vf.showNext();
            }
        }

        break;
    }
    }

    return true;
}


/* (non-Javadoc)
 * @see android.app.Activity#onTouchEvent(android.view.MotionEvent)
 */
@Override
public boolean onTouchEvent(MotionEvent event) {
    // TODO Auto-generated method stub
    mScaleDetector.onTouchEvent(event);
    return true;
}

/* (non-Javadoc)
 * @see android.view.ScaleGestureDetector.OnScaleGestureListener#onScale(android.view.ScaleGestureDetector)
 */
@Override
public boolean onScale(ScaleGestureDetector arg0) {
    // TODO Auto-generated method stub

    //HERE DOES NOTHING! :(
    vf.startAnimation(AnimationUtils.loadAnimation(this, R.anim.zoom_enter));

    return false;
}

/* (non-Javadoc)
 * @see android.view.ScaleGestureDetector.OnScaleGestureListener#onScaleBegin(android.view.ScaleGestureDetector)
 */
@Override
public boolean onScaleBegin(ScaleGestureDetector arg0) {
    // TODO Auto-generated method stub
    return false;
}

/* (non-Javadoc)
 * @see android.view.ScaleGestureDetector.OnScaleGestureListener#onScaleEnd(android.view.ScaleGestureDetector)
 */
@Override
public void onScaleEnd(ScaleGestureDetector arg0) {
    // TODO Auto-generated method stub

}

}

感谢所有人!!

EN

回答 1

Stack Overflow用户

发布于 2013-05-01 20:16:02

我相信您的onTouch( )事件将在其他MotionEvent组件之前触发。由于您每次都返回true,因此它将告诉系统触摸事件已被处理。它不会将它传递给你的其他触摸事件,比如你的ScaleGestureDetector。如果你想在之后处理其他的触摸事件,你需要返回false。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16317560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档