Java getTouchMajor()不精确:我无法获得触摸区域长度的实际值
我想在android手机上用手指触摸屏幕时显示触摸区域的长度和宽度。在尝试getTouchMajor方法后,它只能为我提供[55、99、123、187、219、250等]中的离散数字,而不是触摸区域变化时的连续变化 相反,方法getX和getY非常敏感,可以提供连续的触摸位置值。但是getTouchMajor和getTouchMinor不能这么做Java getTouchMajor()不精确:我无法获得触摸区域长度的实际值,java,android,Java,Android,我想在android手机上用手指触摸屏幕时显示触摸区域的长度和宽度。在尝试getTouchMajor方法后,它只能为我提供[55、99、123、187、219、250等]中的离散数字,而不是触摸区域变化时的连续变化 相反,方法getX和getY非常敏感,可以提供连续的触摸位置值。但是getTouchMajor和getTouchMinor不能这么做 @Override public boolean onTouchEvent(MotionEvent event) { float touchX
@Override
public boolean onTouchEvent(MotionEvent event) {
float touchX = event.getX();
float touchY = event.getY();
float touchWidth = event.getTouchMajor();
float touchLength = event.getTouchMinor();
TextView textX = findViewById(R.id.touch_x);
TextView textY = findViewById(R.id.touch_y);
TextView textWidth = findViewById(R.id.touch_width);
TextView textLength = findViewById(R.id.touch_length);
textX.setText(Float.toString(touchX));
textY.setText(Float.toString(touchY));
textWidth.setText(Float.toString(touchWidth));
textLength.setText(Float.toString(touchLength));
return super.onTouchEvent(event);
}
当我触摸屏幕时,我希望看到手机上触摸宽度和触摸长度的值不断变化
我遇到的另一个小问题是:输出的长度和宽度相同,但我认为它们应该不同,因为文档中说触摸区域是eclipse。问题是我使用的硬件不完全支持这些方法。顺便说一句,我从卡米拉的链接中得到了灵感: 然后我在4台安卓设备上测试了我的程序:Nexus5、GalaxyNote8、GalaxyTabS和Pixel3XL 结果: Galaxy Note 8、Galaxy Tab S和Pixel 3 XL可以区分长轴和短轴 所有4个设备都无法通过getOrientation方法返回有意义的值 Galaxy Note 8的精度最好,其次是Galaxy Tab S和Pixel 3 XL,Nexus 5的精度较差