卡卡挖

导航

Android 控制屏幕亮度 以及无动作定时黑屏 触摸点亮

首先在 Android中的Timer定时  经验证无法正常使用 需要掉用Handler来执行具体细节

///首先定义 读秒参数iSecondCount

    public static int iSecondCount = 0;

    Timer timer = new Timer();  

    //定义handler执行读秒动作即读秒数加一 同时判断是否超过所设置的秒数 超过及执行动作 降低亮度为1 不降为0因为Android内部机制还是什么原因...如果亮度直接将为0的黑屏时..会产生机器假死的情况..至今不知如何解决 所以改成1/255 来实现

        Handler handler = new Handler(){   

    public void handleMessage(Message msg) {  

        switch (msg.what) {      

        case 1:      

          iSecondCount++;

        if(iSecondCount>20)

        {

        setBritness(1);

        }

            break;      

        }      

        super.handleMessage(msg);  

    }  

    };  

    

    TimerTask task = new TimerTask(){  

        public void run() {  

            Message message = new Message();      

            message.what = 1;      

            handler.sendMessage(message);    

        }  

    };  

  @Override

    public void onCreate(Bundle savedInstanceState) {

        ///计时器开始 1000毫秒执行一次

    timer.schedule(task, 0,1000);

    //默认初始亮度200

       setBritness(200);

  }

  //设置亮度事件

 private void setBritness(float brightness)

    {

        WindowManager.LayoutParams params = getWindow().getAttributes();

        params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;

        params.screenBrightness =  brightness / 255.0f;

        getWindow().setAttributes(params);

    }

///触摸事件中 点亮屏幕 并且将读秒数置0

  @Override

public boolean onTouchEvent(MotionEvent event) 

{

iSecondCount=0;

setBritness(200);

if(viewFlipper==null)

return false;

return this.detector.onTouchEvent(event);

}

posted on 2011-08-30 11:40  卡卡挖  阅读(1458)  评论(0编辑  收藏  举报