Android实现长时间不用APP屏幕变暗
发布时间:2020-05-24 21:07:32 所属栏目:Java 来源:互联网
导读:Android实现长时间不用APP屏幕变暗
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 这个原理很简单,相信大家都比较熟悉安卓的图形渲染过程,所以就不介绍了,大概原理就是修改window的亮度,然后达到让屏幕变黑的效果,通过监听activity的import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.MotionEvent;
import android.view.WindowManager;
public class BaseActivity extends Activity {
/**
* 最大的屏幕亮度
*/
float maxLight;
/**
* 当前的亮度
*/
float currentLight;
/**
* 用来控制屏幕亮度
*/
Handler handler;
/**
* 延时时间
*/
long DenyTime = 5 * 1000L;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
InitData();
}
private void InitData() {
handler = new Handler(Looper.getMainLooper());
maxLight = GetLightness(this);
}
/**
* 设置亮度
*
* @param context
* @param light
*/
void SetLight(Activity context,int light) {
currentLight = light;
WindowManager.LayoutParams localLayoutParams = context.getWindow().getAttributes();
localLayoutParams.screenBrightness = (light / 255.0F);
context.getWindow().setAttributes(localLayoutParams);
}
/**
* 获取亮度
*
* @param context
* @return
*/
float GetLightness(Activity context) {
WindowManager.LayoutParams localLayoutParams = context.getWindow().getAttributes();
float light = localLayoutParams.screenBrightness;
return light;
}
@Override
protected void onPause() {
super.onPause();
stopSleepTask();
}
@Override
protected void onResume() {
super.onResume();
startSleepTask();
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (currentLight == 1) {
startSleepTask();
}
return super.dispatchTouchEvent(ev);
}
/**
* 开启休眠任务
*/
void startSleepTask() {
SetLight(this,(int) maxLight);
handler.removeCallbacks(sleepWindowTask);
handler.postDelayed(sleepWindowTask,DenyTime);
}
/**
* 结束休眠任务
*/
void stopSleepTask() {
handler.removeCallbacks(sleepWindowTask);
}
/**
* 休眠任务
*/
Runnable sleepWindowTask = new Runnable() {
@Override
public void run() {
SetLight(BaseActivity.this,1);
}
};
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
