我正试图通过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);
}
}