有没有办法找出Android智能手机的显示变化事件?

时间:2014-04-29 07:38:55

标签: java android events touch

我是韩国延世研究生院的学生。

我想制作一个测量时间间隔的简单应用程序 - 在

之间

触摸屏幕并显示更新。

我发现以下方法可以捕捉触摸事件。

      public boolean onTouchEvent(MotionEvent event) {

            super.onTouchEvent(event);

             if(event.getAction() == MotionEvent.ACTION_DOWN ){
                        ...    

现在我正在搜索Android API,但我找不到抓住的方法

显示更新事件。如果您有关于此问题的任何信息,

请向我表示怜悯。谢谢。

1 个答案:

答案 0 :(得分:2)

尝试在“活动”的内容视图中向视图添加ViewTreeObserver.onDrawListener。您可以创建一个实现该接口的类。当您获得触摸事件时,请在绘图侦听器上调用方法以记录下一个绘制事件的时间。

private MyDrawListener myDrawListener = new MyDrawListener();

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(...);

    findViewById(...).getViewTreeObserver().addOnDrawListener(myDrawListener);
}

public boolean onTouchEvent(MotionEvent event) {
    super.onTouchEvent(event);
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        myDrawListener.recordNextDrawTime();
    }
}

public static class MyDrawListener implements ViewTreeObserver.OnDrawListener {
    private boolean recordNextDrawTime;

    public void recordNextDrawTime() {
        recordNextDrawTime = true;
    }

    @Override
    public void onDraw() {
        if (recordNextDrawTime) {
            Log.d("MyDrawListener", "Draw time = " + System.currentTimeMillis());
            recordNextDrawTime = false;
        }
    }
}