Dev/Android

소프트 네비게이션 탐지 - Detect NavigationBar

healthyryu 2018. 5. 29. 11:56

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 을 구했으니 처리한다.
}

참고 : https://stackoverflow.com/a/20264361/3897810

반응형