728x90
안녕하세요
로로봉입니다 : )
델파이에서 안드로이드 휴대폰의 상태바 높이 및 네비게이션바 높이, 활성화 유무를 구하는 방법을 알아보도록 하겠습니다.
우선 use절에 안드로이드 API 를 추가해줍니다.
uses
Androidapi.Jni.JavaTypes, //JObject
Androidapi.Jni.Os, //JVibrator
Androidapi.JNI.Media, //JAudioManager
Androidapi.Helpers, //SharedActivity
Androidapi.Jni.GraphicsContentViewText, //TJContext
Androidapi.Jni.App, //TJActivity
Androidapi.JNIBridge, //ILocalObject
특정 프로시저에서 아래와 같이 상태 값을 조회하면 됩니다.
procedure ()
var
iStatusBar : Integer;
iNavigationBar : Integer;
bHasNavigationBar : Boolean;
ResourceID : Integer;
begin
ResourceID := 0;
ResourceID := TAndroidHelper.Context.getResources.getIdentifier(
StringToJString('status_bar_height'),
StringToJString('dimen'),
StringToJString('android'));
if ResourceID <> 0 then
iStatusBar := TAndroidHelper.Context.getResources.getDimensionPixelSize(ResourceID);
ResourceID := 0;
ResourceID := TAndroidHelper.Context.getResources.getIdentifier(
StringToJString('navigation_bar_height'),
StringToJString('dimen'),
StringToJString('android'));
if ResourceID <> 0 then
iNavigationBar := TAndroidHelper.Context.getResources.getDimensionPixelSize(ResourceID);
ResourceID := 0;
ResourceID := TAndroidHelper.Context.getResources.getIdentifier(
StringToJString('config_showNavigationBar'),
StringToJString('bool'),
StringToJString('android'));
if ResourceID <> 0 then
bHasNavigationBar := TAndroidHelper.Context.getResources.getBoolean(ResourceID);
end;
iStatusBar, iNavigationBar, bHasNavigationBar 로 상태바 높이, 네비게이션바 높이, 네이게이션바 활성 유무 값이 저장됩니다.
Android 스마트폰의 상태값을 불러오는 API를 사용하는 것이므로 프로젝트의 Permissions의 Read phone state를 반드시 true 해주어야합니다.
좋아요♥ + 구독 부탁드립니다 : )
728x90
반응형
'개발 정보 > 델파이' 카테고리의 다른 글
[Delphi] 델파이 10.4 Sydney iOS 개발 환경 만들기 (16) | 2020.12.23 |
---|---|
[Delphi] 델파이 10.4 Sydney GetIt 패키지 설치 오류 해결하기 (3) | 2020.11.26 |
[Delphi] 델파이 Provider 및 ClientDataSet 사용 시 필요한 Dll 설치 (0) | 2020.11.26 |
[Delphi] 델파이 Windows 시스템 폰트 불러오기 (0) | 2020.11.26 |
[Delphi] 델파이 시리얼 포트 확인하기 (0) | 2020.11.26 |
댓글