Android touchevent——根据场景需要帮助/建议

Android touchevent——根据场景需要帮助/建议,android,android-layout,imageview,touch-event,android-imageview,Android,Android Layout,Imageview,Touch Event,Android Imageview,现在我有一个图像视图,它是一个圆,位于略低于中心位置,但这不重要 我已经编写了一个代码来触摸Actudio,ActunOpUp,现在考虑用户把手指放在圆圈上移动和移动…我想激活一些代码,当用户移动手指并超过圆圈图像的区域时,一旦用户超过该区域,代码应该只被删除一次 这是我的密码 ImageView view1 = (ImageView) findViewById(R.id.fccircledetectionarea); view1.setOnTouchListener(new On

现在我有一个图像视图,它是一个圆,位于略低于中心位置,但这不重要

我已经编写了一个代码来触摸Actudio,ActunOpUp,现在考虑用户把手指放在圆圈上移动和移动…我想激活一些代码,当用户移动手指并超过圆圈图像的区域时,一旦用户超过该区域,代码应该只被删除一次

这是我的密码

ImageView view1 = (ImageView) findViewById(R.id.fccircledetectionarea);

      view1.setOnTouchListener(new OnTouchListener()
      {

        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {
            ImageView imageView=(ImageView) findViewById(R.id.fccircledetectionarea);
            switch(event.getAction())
            {
            case MotionEvent.ACTION_DOWN:
                final float x=imageView.getTop();


                Toast.makeText(PlayScreen.this, "Top Position:"+x, Toast.LENGTH_SHORT).show();
                break;
            case MotionEvent.ACTION_UP:
                Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show();
                break;

            case MotionEvent.ACTION_MOVE:


                Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show();
                break;

            }
            return true;
        }
    });
我无法通过移动行动来存档我的目标:因为如果用户在圆圈内移动手指,它将开始工作

我的第二个问题是如何设置我使用的这个imageview的alpha

view1.setAlpha(0);
但不起作用,我也使此imageview不可见,但我的onTouch代码不起作用

在您的onTouch方法中记录一个布尔值,以检查用户是否在圆的边界内触摸

boolean inCircle = java.lang.Math.sqrt(x*x + y*y) <= circleRadius

其中x取自event.getX-CircleCenter x,y取自event.getY-CircleCenter触摸位置与圆心的偏移量

但圆是图像我没有手动绘制它…如何获取图像视图的中心您可以获取图像视图的宽度和高度,并将其减半。感谢您的快速响应,但是你能解释一下,,,boolean inCenter=java.lang.Math.sqrtxx+yy->如何以圆心为原点,这给你一个点到中心的距离,如果这个距离小于或等于圆的半径,那么它必须在圆内。好的,非常感谢我在纸上做了很多,看起来你的技巧对我有用……明天我将实施它,让你知道,非常感谢!!!!!