Android 之屏幕亮度调节
看到android setting中有个亮度调节功能,将其单独拿出来,
主程序代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.ljmin; import android.app.Activity; import android.os.Bundle; import android.provider.Settings; import android.view.WindowManager; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; public class Screen_LuminanceActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar); //进度条绑定最大亮度,255是最大亮度 seekBar.setMax(255); //取得当前亮度 int normal = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 255); //进度条绑定当前亮度 seekBar.setProgress(normal); seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { //取得当前进度 int tmpInt = seekBar.getProgress(); //当进度小于80时,设置成80,防止太黑看不见的后果。 if (tmpInt < 80) { tmpInt = 80; } //根据当前进度改变亮度 Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, tmpInt); tmpInt = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, -1); WindowManager.LayoutParams wl = getWindow() .getAttributes(); float tmpFloat = (float) tmpInt / 255; if (tmpFloat > 0 && tmpFloat <= 1) { wl.screenBrightness = tmpFloat; } getWindow().setAttributes(wl); } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub } }); } }
demo主要xml:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center"> <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
既可以看到显示效果...