android:如何检测用户何时触摸左侧 20% 的 View 区域?

标签 android motionevent android-touch-event

activity 中使用

public boolean dispatchTouchEvent(MotionEvent ev)

我怎么知道用户触摸左侧 Y 轴 的 20% 边缘区域?

它应该是通用的并且可以处理方向。 我不想为此创建任何隐藏 View 。

最佳答案

  • 获取设备宽度
  • 计算左边 20% 的宽度大小(从 0 到 X)
  • 使用event.getX()
  • 检查 event.getX() 是否在设备内部 20%

enter image description here

例子:

public class YourActivity extends Activity {

        private LinearLayout background;
        private float xValue, yValue, leftPersentage;
        private int height,width;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_home);

            DisplayMetrics displaymetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
            height = displaymetrics.heightPixels;
            width = displaymetrics.widthPixels;

            leftPersentage = (width)*20/100;

            background = (LinearLayout) findViewById(R.id.background);
            background.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    xValue = event.getX();
                    yValue = event.getY();
                    Log.d("Values Clicked" , xValue +"and" + yValue);
                    if(xValue <= leftPersentage){
                        // perform your task 
                        Log.d("Values Clicked onLeft" , xValue +"and" + yValue);
                    }

                    return false;
                }
            });
        }
    }

关于android:如何检测用户何时触摸左侧 20% 的 View 区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41993859/

相关文章:

android - 如何检查 Libgdx 中图像中圆圈的触摸点?

java - 将 RGB 转换为位图中的 X 和 Y

java - 与ImageView位置相比,OnTouch给出了不同的位置

android - 在 Android Canvas 上应用缩放效果后缩放位置错误

android - 如何在不兼容的设备上使用 Android MIDI USB 堆栈

java - 如何处理 Android/Maven 项目中缺少 src/test/java 源文件夹?

java - ClassCastException : java. lang.Object[] 无法转换为 java.lang.Double

java - 如何检测按钮按下状态?

java - Android MotionEvent.Action_MOVE