Detect Soft NavigationBar
가장 하단에 있는 부분이 '소프트 네비게이션바' 입니다.
저는 해당 화면의 View 를 저장하기 위해서 screenshot 기능을 구현하는데 소프트 네비게이션도 같이 저장되어서 네비게이션을 제거하기 위해서 방법을 찾아보았습니다.
1. 네비게이션바 있는지 체크
public boolean isNavigationBar() {
int id = getResources().getIdentifier("config_showNavigationBar", "bool", "android");
return id > 0 && getResources().getBoolean(id);
}
참고 : https://stackoverflow.com/a/32698387/3897810
2. 네비게이션바가 있다면 네비게이션바 높이를 찾아서 해당만큼 제외
if (isNavigationBar()) {
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
int deviceHeight = 0;
if (resourceId > 0) {
deviceHeight = getResources().getDimensionPixelSize(resourceId);
}
// deviceHeight 을 구했으니 처리한다.
}
반응형
'Dev > Android' 카테고리의 다른 글
Progressbar 를 띄울때, 해당 페이지 Touch 막기 (0) | 2018.06.07 |
---|---|
안드로이드 strings.xml 특수문자 넣기 (0) | 2018.06.01 |
안드로이드 화면 해상도 구하기 (0) | 2018.05.24 |
strings.xml 파일에서 text 색깔 변경하기 (0) | 2018.05.23 |
Android(안드로이드) - 코드로 ScreenOrientation 바꾸기 (0) | 2018.05.17 |