【问题标题】:Android smoother pinch zoom?Android 更流畅的捏缩放?
【发布时间】:2012-11-07 19:53:39
【问题描述】:

我为捏缩放功能的“实现”编写了自己的代码,它可以工作,但它根本不是用户友好的。通常非常零星,总的来说一点也不漂亮。我想知道你们中的任何人是否可以帮助我,也许是更简单的方法或不同的方法。也许使用 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;

            }
            }}  

这可能根本不是最好的方法。取几个事件的平均值会得到更好的响应吗?

谢谢

【问题讨论】:

    标签: android zooming smooth pinch


    【解决方案1】:

    查看索尼爱立信开发者世界上的缩放支持教程,希望它们能给你一些线索。

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 2013-01-06
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多