FrameLayout에 두 개의 뷰를 만들고 초에 포커스를 요청했습니다. 활동 터치 이벤트를 시작하면 잠시 멈추고 내 GL보기로 이동합니다. 이것은 내가 생각하는 임의의 시간이 걸린다 (일반적으로 5-10 초). 거기에 이벤트 대기열을 플러시하는 방법?효율적인 방법으로 WindowManager에서 터치 포커스를 요청 하시겠습니까?
나는 GLSurfaceView를 가지고 있으며 위에 오버레이 SurfaceView를 그려야한다. SurfaceView는 GLSurfaceView 위에 그려져 야하지만 입력 이벤트는 OpenGL 표면에 전달되어야합니다. 이
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLView= new SFView(this);
mCanvas= new SFCanvas(this);
mLayout=new FrameLayout(this);
mLayout.addView(mCanvas);
mLayout.addView(mGLView);
setContentView(mLayout);
mGLView.post(new Runnable() {
public void run() {
while(mGLView.isFocused() == false)
{
mGLView.requestFocus();
}
}
});
}
, 내 활동 내 로그 캣은 다음과 같습니다.
KeyInputQueue Enqueueing touch event1
KeyInputQueue Enqueueing touch event0
KeyInputQueue Enqueueing touch event1
KeyInputQueue Enqueueing touch event0
KeyInputQueue Enqueueing touch event1
KeyInputQueue Enqueueing touch event0
..
WindowManager Delivering pointer 1 > Window{com.myapplication/com.myapplication.activity}
WindowManager Delivering pointer 0 > Window{com.myapplication/com.myapplication.activity}
WindowManager Delivering pointer 1 > Window{com.myapplication/com.myapplication.activity}
KeyInputQueue Enqueueing touch event0
WindowManager Delivering pointer 0 > Window{com.myapplication/com.myapplication.activity}
KeyInputQueue Enqueueing touch event1
WindowManager Delivering pointer 1 > Window{com.myapplication/com.myapplication.activity}
..
는 또한 하나의 requestFocus를()를 시도했습니다,하지만 같은 효과 응용 프로그램 활동이 시작 첫번째 초에서 무책임하게했다. 내가 어디서 잘못한거야? 모든 제안에 감사드립니다. 잘못된 설명과 제 언어에 대해 유감입니다. 나는 안드로이드 플랫폼 및이 사이트의 초보자입니다.
나는 onTouchEvent()를 다시 구현했다.이 메소드는 두 뷰 모두 호출되지 않는다. – alimg