안드로이드 스튜디오 풀스크린 (전면카메라 노치영역 없애기) (내비게이션바)

 갤럭시로 풀스크린 어플을 개발하던 중

단순히 액션바만 없애는게 아니라

전면카메라 펀치홀이 존재하는 노치영역까지도 확장된 풀스크린을 하고자 한다.


일단 전체 소스코드

<resources>
<style name="FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowFullscreen">true</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>


Theme에서 NoActionBar를 상속하는 테마를 만들고

맨 위의 아이템은 풀스크린,

그 아래 3줄이 펀치홀까지 확장하는 코드이다.

API27 이상부터 적용되는 사항이다.

출처: https://stackoverflow.com/questions/49190381/fullscreen-app-with-displaycutout


내비게이션바를 없애려면

아래소스코드를 추가해준다.

private View decorView;
private int uiOption;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

decorView = getWindow().getDecorView();
uiOption = getWindow().getDecorView().getSystemUiVisibility();
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
uiOption |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN )
uiOption |= View.SYSTEM_UI_FLAG_FULLSCREEN;
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT )
uiOption |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

decorView.setSystemUiVisibility( uiOption );


출처 : http://cloudylab.blogspot.com/2015/02/android-full-screen.html



No comments:

Post a Comment