手機設定的亮度調節功能

來源:互聯網
上載者:User

轉自:http://blog.csdn.net/cys410/article/details/7346114

1、亮度設定

// 判斷是否自動調節public static boolean isAutoBrightness(ContentResolver aContentResolver){boolean automicBrightness = false;try{automicBrightness =                  Settings.System.getInt(aContentResolver,                   Settings.System.SCREEN_BRIGHTNESS_MODE) ==                  Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;         }         catch (SettingNotFoundException e)         {         e.printStackTrace();         }        return automicBrightness;}// 擷取當前亮度public static int getScreenBrightness(Context context){int nowBrightnessValue = 0;ContentResolver resolver = context.getContentResolver();try{nowBrightnessValue = android.provider.Settings.System.getInt(                  resolver, Settings.System.SCREEN_BRIGHTNESS);}catch (Exception e){e.printStackTrace();}return nowBrightnessValue;}// 設定當前螢幕的亮度public static void setBrightness(Activity context, int brightness){WindowManager.LayoutParams lp = context.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);context.getWindow().setAttributes(lp);}// 關閉螢幕亮度自動調節   public static void stopAutoBrightness(Activity activity){Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}// 開啟螢幕亮度自動調節 public static void startAutoBrightness(Activity activity){Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}// 儲存螢幕的亮度public static void saveBrightness(ContentResolver resolver, int brightness){Uri uri = android.provider.Settings.System.getUriFor("screen_brighness");Settings.System.putInt(resolver, "screen_brightness", brightness);resolver.notifyChange(uri, null);}

2、xml設定檔

main.xml

<?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" >    <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="btn" /></LinearLayout>

dialog.xml

<?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" >    <CheckBox        android:id="@+id/cb"        android:layout_width="220dip"        android:layout_height="wrap_content"        android:text="我叫小Q" />    <SeekBar        android:id="@+id/seek"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_margin="10dip"        拖動seekbar手動調節=""        android:max="500" /></LinearLayout>

3、Activity

private boolean ff = false;private Button btn;private SeekBar sb;private CheckBox cb;private View v1;private AlertDialog alt;private int m;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btn = (Button)this.findViewById(R.id.btn);ff = this.getSharedPreferences("hoperun", MODE_PRIVATE).getBoolean("checkable", true);m = this.getSharedPreferences("hoperun", MODE_PRIVATE).getInt("light", BrightUtil.getScreenBrightness(this));Toast.makeText(this, m + "", 10000).show();v1 = this.mm(this);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){DialogActivity.this.alt =new AlertDialog.Builder(DialogActivity.this).setView(v1).setTitle("test").setIcon(R.drawable.ic_launcher).setMessage("目前亮度為" + m).setPositiveButton("ddddd", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){Editor et = DialogActivity.this.getSharedPreferences("hoperun", MODE_PRIVATE).edit();if (ff)et.putBoolean("checkable", ff);else{et.putBoolean("checkable", ff);Toast.makeText(DialogActivity.this, m + "", 10000).show();et.putInt("light", m);}et.commit();}}).show();}});handle();}private View mm(DialogActivity DialogActivity){v1 = LayoutInflater.from(this).inflate(R.layout.dialog, null);sb = (SeekBar)v1.findViewById(R.id.seek);cb = (CheckBox)v1.findViewById(R.id.cb);return v1;}private void handle(){if (ff){if (!BrightUtil.isAutoBrightness(this.getContentResolver()))BrightUtil.startAutoBrightness(this);cb.setChecked(true);sb.setVisibility(sb.GONE);m = BrightUtil.getScreenBrightness(this);BrightUtil.setBrightness(this, m);}else{if (BrightUtil.isAutoBrightness(this.getContentResolver())){BrightUtil.stopAutoBrightness(this);}cb.setChecked(false);sb.setVisibility(sb.VISIBLE);sb.setProgress(m);sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){m = progress;BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);Toast.makeText(DialogActivity.this, m + "", 10000).show();}@Overridepublic void onStartTrackingTouch(SeekBar seekBar){m = seekBar.getProgress();BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);Toast.makeText(DialogActivity.this, m + "", 10000).show();}@Overridepublic void onStopTrackingTouch(SeekBar seekBar){m = seekBar.getProgress();BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);Toast.makeText(DialogActivity.this, m + "", 10000).show();}});}cb.setOnCheckedChangeListener(new OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked){if (cb.isChecked()){if (!BrightUtil.isAutoBrightness(DialogActivity.this.getContentResolver()))BrightUtil.startAutoBrightness(DialogActivity.this);cb.setChecked(true);sb.setVisibility(sb.GONE);alt.setMessage("目前亮度為:" + BrightUtil.getScreenBrightness(DialogActivity.this));ff = true;}else{ff = false;if (BrightUtil.isAutoBrightness(DialogActivity.this.getContentResolver())){BrightUtil.stopAutoBrightness(DialogActivity.this);}cb.setChecked(false);sb.setVisibility(sb.VISIBLE);m =DialogActivity.this.getSharedPreferences("hoperun", MODE_PRIVATE).getInt("light",BrightUtil.getScreenBrightness(DialogActivity.this));sb.setProgress(m);alt.setMessage("目前亮度為:" + m);sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){m = progress;BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);Toast.makeText(DialogActivity.this,BrightUtil.getScreenBrightness(DialogActivity.this) + "",10000).show();}@Overridepublic void onStartTrackingTouch(SeekBar seekBar){m = seekBar.getProgress();BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);}@Overridepublic void onStopTrackingTouch(SeekBar seekBar){m = seekBar.getProgress();BrightUtil.setBrightness(DialogActivity.this, m);alt.setMessage("目前亮度為" + m);Toast.makeText(DialogActivity.this,BrightUtil.getScreenBrightness(DialogActivity.this) + "",10000).show();}});}}});}

 

注意:

        這個還沒在真機測試過,回頭在手機上測試下,再把這個刪掉。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.