Android浅学两点触摸

来源:互联网 发布:好的数据分析报告 编辑:程序博客网 时间:2024/04/29 04:47

Android浅学两点触摸

安卓手机两点触摸,获取两点之间的位置变化,判断是放大,缩小还是移动

package com.multitouchactivity;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.widget.TextView;public class MainActivity extends Activity {    private TextView tvtext;//显示结果    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tvtext = (TextView) findViewById(R.id.tvtext);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        if(event.getPointerCount() == 2){            if(event.getAction() == event.ACTION_MOVE){                int historSize = event.getHistorySize();                if(historSize == 0){                    return true;                }                //获取第一个手指当前的坐标                float currentY1 = event.getY(0);                //获取第一个手指最新的历史纵坐标                float historyY1 = event.getHistoricalY(0,historSize-1);                //获取第二个手指当前的坐标                float currentY2 = event.getY(1);                //获取第二个手指最新的历史纵坐标                float historyY2 = event.getHistoricalY(1,historSize-1);                //两手指当前纵坐标的距离                float distance = Math.abs(currentY1 - currentY2);                //两手指最新的历史纵坐标的距离                float HistoryDistance = Math.abs(historyY1 - historyY2);                //比较                if(distance > HistoryDistance){                    tvtext.setText("放大");                }                else if(distance < HistoryDistance){                    tvtext.setText("缩小");                }                else{                    tvtext.setText("移动");                }            }           }        return true;    }}
0 0