안드로이드

안드로이드 코드로 화면 밝기 조절하기, Android control screen brightness with java,kotlin code

알통몬_ 2018. 6. 25. 15:05
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


오랜만에 안드로이드 카테고리에 포스팅을 합니다.


이번 포스팅에서는 안드로이드의 화면 밝기를 java, kotlin 코드로


조절하는 방법에 대해서 공부합니다.


0. 저는 그냥 배경이 흰색인 layout을 하나 만들었습니다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
android:background="@color/white"
xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
android:layout_height="match_parent">

</android.support.constraint.ConstraintLayout>


1. java 코드로 조절하기

public class BrightnessActivity extends AppCompatActivity {

private WindowManager.LayoutParams params;
private float origin;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_brightness);
params = getWindow().getAttributes();
}

@Override
protected void onResume() {
super.onResume();
origin = params.screenBrightness;
params.screenBrightness = 1.0f;
getWindow().setAttributes(params);
}

@Override
protected void onPause() {
super.onPause();
params.screenBrightness = origin;
getWindow().setAttributes(params);
}
}


onResume() 메소드에서 화면 밝기를 1로 만들어주면 앱에 들어왔을 때

화면 밝기가 최대로 올라갑니다.

origin 이라는 float 필드에 원래의 화면 밝기 값을 담아 놓음으로

onPause() 메소드가 호출될 때 화면 밝기가 원래대로 돌아가도록 만들었습니다.


이번에는 코틀린 코드를 보겠습니다.


2. kotlin 코드로 조절하기

class BrightnessActivity : AppCompatActivity() {

lateinit var params : WindowManager.LayoutParams
var origin = 0.0f

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_brightness)

}

override fun onResume() {
super.onResume()
origin = params.screenBrightness
params.screenBrightness = 1.0f
window.attributes = params
}

override fun onPause() {
super.onPause()
params.screenBrightness = origin
window.attributes = params
}
}


어렵지 않죠? 여기에 Seekbar 같은 걸 놔서 앱 안에서 밝기를 조절할 수도 있겠습니다.

반응형