2

Android の Talk back 機能を使用して、アプリケーションをよりアクセスしやすくしようとしています。カスタムビューをダブルタップした場合を除いて、トークバックは正常に機能し、タッチイベントは常に同じ座標 x: 336 、 y: 519 を返します。両方を試しましevent.getRawX()たが、ダブルタップすると常に x: 360 が返されます。しかし興味深いことに、2 本の指でタップすると、適切な値が返されます。

トークバックがオンのときにカスタムビューのダブルタップタッチイベントで適切な座標を取得するための解決策またはハックはありますか?

これがサンプルコードです。

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