Android:用Seekbar来调节屏幕亮度
2013-09-13 15:56
302 查看
import com.dh.shoudiantong.screendatils.VerticalSeekBar; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; import android.widget.RelativeLayout; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; public class ScreenActivity extends Activity{ private RelativeLayout mylayout;//布局 Context context; private int Max_Brightness = 255;//进度条的最大值 private VerticalSeekBar vSeekBar = null;//调节亮度的进度条 private float fBrightness = 0.0f;//亮度值 private WindowManager.LayoutParams lp = null;//窗口处理器的参数类 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); HideStatusBase(); setContentView(R.layout.screen_activity); mylayout=(RelativeLayout)findViewById(R.id.mylayout); vSeekBar = (VerticalSeekBar) findViewById(R.id.verticalSeekBar); vSeekBar.setMax(Max_Brightness); vSeekBar.setProgress(Max_Brightness);//默认进度值为最大 vSeekBar.setOnSeekBarChangeListener(new SeekBarChangedListener()); //默认屏幕为最大亮度 lp = getWindow().getAttributes(); fBrightness = (float) vSeekBar.getProgress() / (float)Max_Brightness; lp.screenBrightness =fBrightness; getWindow().setAttributes(lp); lp.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; } class SeekBarChangedListener implements OnSeekBarChangeListener{ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if(progress<1) progress=1;//此处是为了避免screenbrightness=0,从而导致屏幕自动休眠锁屏 fBrightness = (float) progress/ (float)Max_Brightness; lp.screenBrightness =fBrightness; getWindow().setAttributes(lp); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } /** * 屏幕点击事件显示菜单 */ @Override public boolean onTouchEvent(MotionEvent event){ return false; } /** * 全屏设置 */ private void HideStatusBase() { requestWindowFeature(Window.FEATURE_NO_TITLE); int flag=WindowManager.LayoutParams.FLAG_FULLSCREEN; Window myWindow=this.getWindow(); myWindow.setFlags(flag,flag); } }
效果图:
![](http://images.cnitblog.com/blog/565164/201309/13160249-09d873ee25c84df0bd5b83444383b228.png)
lp.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
是为了避免屏幕进入休眠状态
注意:当SeekBrightness=0时,屏幕会自动休眠锁屏;为了解决这个问题,我将progress小于1时设为1;
以上仅为本人为了记录,方便以后查略;若有错误,请不吝指正。
相关文章推荐
- android通过seekbar调节屏幕亮度
- Android调节屏幕亮度实现代码
- Android_调节屏幕亮度(背景灯)及保持背景灯常亮的方法
- 【Android】如何调节屏幕亮度,关闭屏幕
- 【Android】如何调节屏幕亮度,关闭屏幕
- Android:调节屏幕亮度
- android系统屏幕亮度调节
- Android 调节屏幕亮度(当前应用和系统亮度)
- android自动调节屏幕亮度自动调节流程解析
- 重温Android——调节屏幕亮度
- Android 调节屏幕亮度问题
- Android基础教程——调节系统屏幕亮度
- android 通过悬浮窗调节屏幕亮度
- android自动调节屏幕亮度自动调节流程解析
- Android开发实现调节屏幕亮度功能
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- 小程序--android调节屏幕亮度
- android调节屏幕亮度
- Android 调节屏幕的亮度
- android调节屏幕亮度