Android 尝试实现双手指缩放

Android 尝试实现双手指缩放,android,zooming,motionevent,Android,Zooming,Motionevent,我可以用我的应用程序平移,但我正在尝试实现两个手指的缩放。我正在创建一个带有大位图的地图测验。我还没有找到一个简单的方法来做到这一点-任何帮助将不胜感激。谢谢这是我的密码: import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.HorizontalScrollView; import android.widget.ScrollVie

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

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;
}

}

你可以在上面找到很多文档

关于缩放


这里正是您需要的

有没有一种方法可以在没有画布的情况下做到这一点?我不这么认为。也许最好的方法是在github上找到一些imageviewer开源项目。