Nexus 4 KitKat 4.4 및 으로 개발 중이며 IMMERSIVE MODE
을 내 게임에 추가하려고합니다. glViewport
을 올바르게 설정하려면 화면 높이가 필요합니다. Android, GL, 화면 크기가 IMERERAVE MODE
IMMERSIVE MODE
에서 화면의 실제 높이를 반환하지 않습니다
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static int getScreenHeight() {
if (Main.m_activity == null)
return -1;
Display display = Main.m_activity.getWindowManager()
.getDefaultDisplay();
int height = -1;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
//width = display.getWidth(); // deprecated
height = display.getHeight(); // deprecated
}else{
Point size = new Point();
display.getSize(size);
height = size.y;
}
return height;
}
을 사용했다.
그래서 나는private static class Renderer implements GLSurfaceView.Renderer {
public void onSurfaceChanged(GL10 gl, int width, int height) {
의 값을 사용하기 시작하고 응용 프로그램이 시작될 때 괜찮 았는데. 내가 집에 버튼을 눌러 게임 onSurfaceChanged
의 뒤쪽으로 홈 화면으로 돌아간 경우 다시 있지만 오래된 잘못된 값으로 호출되는 (비 몰입 모드 화면 크기, 작은, 일반)
빠져드는듯한 화면 크기는 800x1280 정규 크기는 800x1184입니다
일반 크기로 설정하고 glViewport
으로 설정하면 화면 상단에 검은 색 선이 나타납니다.
PS 또한 IMMERSIVE MODE
은 볼륨 버튼을 누르면 사라집니다.
PS2
나는 방법 IMPL을 다음했다. 그것은 화면/창 크기 조정을 처리하는 데 도움이되지 않습니다.
@Override
public void onWindowFocusChanged(boolean hasFocus) {
@payeli 태그가 불필요하게 "개선"되지 않도록하십시오. 우리는 이미 kitkat을위한 * 두 개의 태그를 가지고 있습니다. 우리는 세번째 태그가 필요하지 않았습니다. – Charles