试图实现2手指缩放

时间:2014-12-07 19:07:55

标签: android zoom motionevent

我可以使用我的应用程序进行平移,但我正在尝试实现两指捏缩放。我正在创建一个带有大位图的地图测验。我还没有找到一个简单的方法 - 任何帮助将不胜感激。谢谢!这是我的代码:

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.HorizontalScrollView;
import android.widget.ScrollView;

public class MainActivity extends Activity {

private float mx, my;
private float curX, curY;

private ScrollView vScroll;
private HorizontalScrollView hScroll;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.quiz);

    vScroll = (ScrollView) findViewById(R.id.vScroll);
    hScroll = (HorizontalScrollView) findViewById(R.id.hScroll);



}

@Override
public boolean onTouchEvent(MotionEvent event) {
    float curX, curY;

    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:
            mx = event.getX();
            my = event.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            curX = event.getX();
            curY = event.getY();
            vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            mx = curX;
            my = curY;
            break;
        case MotionEvent.ACTION_UP:
            curX = event.getX();
            curY = event.getY();
            vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            break;


    }

    return true;
}

}