private RelativeLayout root;
    private ImageView moveImage;
    float lastDestance=-1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);


        root= (RelativeLayout) findViewById(R.id.Main_Activity);
        moveImage = (ImageView) findViewById(R.id.moveImage);

        root.setOnTouchListener(new View.OnTouchListener() {    //侦听控件的触摸事件
            @Override
            public boolean onTouch(View v, MotionEvent event) {


                float currentDestance;

                switch (event.getAction())
                {
                    case MotionEvent.ACTION_DOWN ://监听点击一个点
                        System.out.println("按下");
                        break;
                    case MotionEvent.ACTION_MOVE ://触摸移动 手指移动时

                        if (event.getPointerCount()>=2)
                        {

                            float offSetX =event.getX(0)-event.getX(1);//获取
                            float offSetY =event.getY(0)-event.getY(1 );
                            currentDestance = (float) Math.sqrt(offSetX*offSetX+offSetY*offSetY);//获取两点间距离 然后运用勾股定理 算出两个手指点之间的距离

                            System.out.println(lastDestance);
                            if (lastDestance<0) {

                                System.out.println("初始化变量");
                                System.out.println(currentDestance);
                               lastDestance= (float)currentDestance;//将第一次获取的两点距离  复制给lastDestance
                                System.out.println(lastDestance);
                            }
                            else {
                                System.out.println("进入手指动作判断");
                                if (currentDestance-lastDestance>5)
                                {
                                    System.out.println("手势 放大");
                                    RelativeLayout.LayoutParams lv= (RelativeLayout.LayoutParams) moveImage.getLayoutParams();

                                    lv.width = (int) (1.1f*moveImage.getWidth());//每一次两点间的距离放大 将图片的高和宽 分别*1.1 不停的放大
                                    lv.height = (int) (1.1f*moveImage.getHeight());
                                    moveImage.setLayoutParams(lv);//将每次放大的距离复制个image的高和宽
                                    lastDestance =currentDestance;//将这一次的两点间距离赋值给lastDestance  以便每次比较
                                }
                                else if (lastDestance-currentDestance>5){

                                    System.out.println("手势 缩小");
                                    RelativeLayout.LayoutParams lv= (RelativeLayout.LayoutParams) moveImage.getLayoutParams();

                                    lv.width = (int) (0.9f*moveImage.getWidth());//当两点间的距离在不断的缩小时
                                    lv.height = (int) (0.9f*moveImage.getHeight());
                                    moveImage.setLayoutParams(lv);
                                    lastDestance =currentDestance;
                                }
                            }

                        }


                        break;
                    case MotionEvent.ACTION_UP ://手指离开屏幕事件
                        System.out.println("弹起");
                        break;
                    default:
                        System.out.println("无");
                        break;

                }
                return true;
            }
        });


    }

更多相关文章

  1. Android(安卓)textView字间距自定义LetterSpacingTextView
  2. 相对布局RelativeLayout的妙用:提示标签在输入框内
  3. android布局属性之margin
  4. android多点触摸缩放图片
  5. Android实现图片放大缩小
  6. 关于相对布局RelativeLayout的各种属性
  7. 关于相对布局RelativeLayout的各种属性介绍
  8. Android设置TextView行间距(非行高)
  9. android 图片 上下左右滑动,能放大放小

随机推荐

  1. android SharedPreference的简单使用(登陆
  2. ScrollView can host only one direct ch
  3. Android 内部存储相关的函数(getCacheDir,
  4. Android(安卓)Studio maven-metadata.xml
  5. android Fragment实现
  6. android 蓝牙源码分析
  7. Android(安卓)4.0调用http接口php网站的a
  8. android触摸屏控制
  9. Android(安卓)7.0 调用相机 FileProvider
  10. Android 内存泄漏相关