Notice
Recent Posts
Recent Comments
Link
투케이2K
197. (AndroidStudio/android/java) 안드로이드 시스템 화면 밝기 값 가져오기 및 앱 화면 밝기 값 동적 변경 본문
Android
197. (AndroidStudio/android/java) 안드로이드 시스템 화면 밝기 값 가져오기 및 앱 화면 밝기 값 동적 변경
투케이2K 2021. 10. 2. 16:24[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
//==================== [액티비티 실행 준비 메소드] ====================
@Override
public void onResume(){
super.onResume();
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_DisplayLight > onResume() 메소드 : 액티비티 실행 준비 상태]");
Log.w("//===========//","================================================");
Log.d("---","---");
//TODO [외부 브라우저 복귀 시 화면 전환 애니메이션 없애기 위함]
try {
overridePendingTransition(0,0);
}
catch (Exception e){
e.printStackTrace();
}
//TODO [원본 모바일 화면 디스플레이 밝기 값 가져오기]
getDisplayLightValue();
//TODO 동적 화면 밝기 조절 함수 호출
//setDisplayLightValueChange(0.3);
}
//==================== [액티비티 종료 메소드] ====================
@Override
public void onDestroy(){
super.onDestroy();
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_DisplayLight > onDestroy() 메소드 : 액티비티 종료 상태]");
Log.e("//===========//","================================================");
Log.d("---","---");
//TODO [원래 화면 밝기로 변경]
try {
setDisplayLightValueOriginal();
}
catch (Exception e){
e.printStackTrace();
}
}
//==================== [현재 모바일 화면 밝기 값 가져오기] ====================
//TODO [필요한 퍼미션 : 안드로이드 시스템 화면 밝기 값 확인]
//<uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions" />
//TODO [필요한 변수]
private static int sys_value; //TODO 시스템 밝기값은 int 형으로 저장됨
private static double sys_brightness; //TODO 시스템 밝기값은 int 형으로 저장됨
private static double sys_Perc = 0; //TODO 시스템 밝기값 퍼센트 저장
private static WindowManager.LayoutParams params; //TODO 윈도우 매니저 객체 사용
private static double app_brightness; //TODO 앱 밝기값은 float 형으로 저장됨
public void getDisplayLightValue(){
try {
//TODO [화면 정보 불러오기]
params = getWindow().getAttributes();
//TODO [안드로이드 시스템 화면 밝기 설정값 가져 오기 : 0 ~ 255]
sys_value = android.provider.Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
sys_Perc = (double) sys_value / (double) 255 * 100.0;
sys_Perc = Double.valueOf(String.format("%.1f", sys_Perc)); // 소수점 한자리까지 출력
sys_brightness = Double.valueOf(String.format("%.1f", (sys_Perc/100))); // 소수점 한자리까지 출력
//TODO [앱 화면 밝기 원본 설정 값 지정 : 0 ~ 1]
app_brightness = Double.valueOf(String.format("%.1f", (sys_Perc/100))); // 소수점 한자리까지 출력
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_DisplayLight > getDisplayLightValue() 메소드 : 현재 모바일 화면 밝기 값 확인 실시]");
Log.d("","\n"+"[원본 시스템 화면 밝기 값 : "+String.valueOf(sys_brightness)+"]");
Log.d("","\n"+"[원본 시스템 화면 밝기 퍼센트 : "+String.valueOf(sys_Perc)+"]");
Log.d("","\n"+"[원본 앱 화면 밝기 값 : "+String.valueOf(app_brightness)+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
}
catch (Exception e){
e.printStackTrace();
}
}
//==================== [모바일 화면 밝기 값 동적 변경] ====================
public void setDisplayLightValueChange(float value){
try {
// [화면 밝기 변경]
params.screenBrightness = value;
getWindow().setAttributes(params);
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_DisplayLight > setDisplayLightValueChange() 메소드 : 모바일 화면 밝기 변경]");
Log.d("","\n"+"[변경 화면 밝기 값 : "+String.valueOf(value)+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
}
catch (Exception e){
e.printStackTrace();
}
}
//==================== [모바일 화면 밝기 값 원본 복구] ====================
public void setDisplayLightValueOriginal(){
try {
// [기존 화면 밝기로 변경]
params.screenBrightness = (float) app_brightness;
getWindow().setAttributes(params);
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_DisplayLight > setDisplayLightValueOriginal() 메소드 : 원래 모바일 화면 밝기로 변경]");
Log.d("","\n"+"[원본 화면 밝기 값 : "+String.valueOf(app_brightness)+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
}
catch (Exception e){
e.printStackTrace();
}
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments