이미지를 텍스처로 렌더링하는 GLSurfaceView가 있습니다. GestureDetector를 GLSurfaceView에 연결했습니다. 사용자가 화면을 탭하면 GLSurfaceView 위에 선형 레이아웃을 표시하려고합니다.GlSurfaceView 위에 레이아웃이 사라지고 그 자체로 나타납니다
현재 사용자가 GLSurfaceView를 탭하면 선형 레이아웃이 표시되지만 약 2-3 초 만에 자체적으로 사라집니다. 가끔씩 화면이 1 초 간격으로 깜박입니다. 이 모든 것은 사용자의 개입없이 이루어집니다.
무슨 일이 일어나고 있는지 통찰력 있습니까? 여기에 내가 시도한 것과 유용한 정보가있다.
- 내 GLSurfaceView는 Render_When_Dirty 모드로 설정되고 난 사용자 후 onDrawFrame 방법에 통화가 없어야 도청 것을 보장했다. 메서드에 문을 로깅하여이 사실을 알 수 있습니다.
- 선형 레이아웃의 setVisibility (boolean) 메소드가 악의적으로 호출되지 않았 음을 확인했습니다.
다음은 GLSurfaceView를 만드는 방법에 대한 코드입니다.
glSurfaceView = new GLSurfaceView(context) {
public void surfaceDestroyed(SurfaceHolder holder) {
super.surfaceDestroyed(holder);
Logger.w("Surface Destroyed");
if (sprite != null) {
// readerBitmap =sprite.bitmap;
time = sprite.time;
}
//glSurfaceView.setBackgroundColor(color.black);
if (myHandler != null) {
myHandler.sendEmptyMessage(9);
}
}
};
gestureDetector = new GestureDetector(context, new MyGestureDetector());
glSurfaceView.setOnTouchListener(touchListener);
// set our renderer to be the main renderer with
sprite = new GlRenderer(context,Global.PICTURES.get(Global.currentPictureIndex),myHandler, tempTime);
glSurfaceView.setRenderer(sprite);
glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
TextView tv = (TextView)findViewById(R.id.customTextView1);
tv.setVisibility(View.GONE);
//add to the view
mainLayout.removeView(glSurfaceView);
mainLayout.addView(glSurfaceView, 0);
P. Android 4.0에 있음