2

我正在尝试通过 android 中的 Talk back 功能使我的应用程序更易于访问。回话正常工作,除非我双击自定义视图,触摸事件总是返回相同的坐标 x: 336 , y: 519 。我都试过了event.getRawX(),当我双击时它总是返回 x: 360 。但有趣的是,如果我用两根手指敲击它会返回正确的值。

当 Talk Back 开启时,是否有任何解决方案或技巧可以在自定义视图上的双击触摸事件上获得正确的坐标???

这是示例代码。

public class CustomView extends TextView {

    public CustomView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        this.setContentDescription("x:" + event.getX() + ", y:" + event.getY());
        setText("x : " + event.getX() + " , y : " + event.getY() + "\n" + "Raw x: " + event.getRawX() + ", y : "
                + event.getRawY() + "\n ");
        return super.onTouchEvent(event);
    }
}
4

0 回答 0