欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程設(shè)置屏幕亮度的方法

 更新時(shí)間:2017年07月31日 11:12:50   作者:低調(diào)小一  
這篇文章主要介紹了Android編程設(shè)置屏幕亮度的方法,結(jié)合實(shí)例形式分析了Android獲取及設(shè)置屏幕亮度的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Android編程設(shè)置屏幕亮度的方法。分享給大家供大家參考,具體如下:

使用場景

最近在研究AndroidL Settings的代碼,寫了一個(gè)簡單的控件來操控屏幕亮度。

其實(shí),調(diào)節(jié)屏幕亮度的場景應(yīng)用很廣,例如很多視頻應(yīng)用都響應(yīng)touch事件來進(jìn)行亮度調(diào)節(jié)。

屏幕亮度調(diào)節(jié)模式

首先,需要明確屏幕亮度有兩種調(diào)節(jié)模式:

Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值為1,自動(dòng)調(diào)節(jié)亮度。
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL:值為0,手動(dòng)模式。

如果需要實(shí)現(xiàn)亮度調(diào)節(jié),首先需要設(shè)置屏幕亮度調(diào)節(jié)模式為手動(dòng)模式。

設(shè)置方法如下:

public void setScrennManualMode() {
  ContentResolver contentResolver = getActivity().getContentResolver();
  try {
    int mode = Settings.System.getInt(contentResolver,
        Settings.System.SCREEN_BRIGHTNESS_MODE);
    if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
      Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
          Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
    }
  } catch (Settings.SettingNotFoundException e) {
    e.printStackTrace();
  }
}

獲取屏幕亮度值

這里需要了解:

1. 屏幕最大亮度為255。
2. 屏幕最低亮度為0。
3. 屏幕亮度值范圍必須位于:0~255。

設(shè)置屏幕亮度的方法:

private int getScreenBrightness() {
  ContentResolver contentResolver = getActivity().getContentResolver();
  int defVal = 125;
  return Settings.System.getInt(contentResolver,
      Settings.System.SCREEN_BRIGHTNESS, defVal);
}

設(shè)置系統(tǒng)屏幕亮度值

在設(shè)置系統(tǒng)屏幕亮度前,需要保證AndroidManifest.xml中聲明如下權(quán)限:

復(fù)制代碼 代碼如下:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

當(dāng)屏幕亮度模式為0即手動(dòng)調(diào)節(jié)時(shí),可以通過如下代碼設(shè)置屏幕亮度:

private void saveScreenBrightness() {
  setScrennManualMode();
  ContentResolver contentResolver = getActivity().getContentResolver();
  int value = 255; // 設(shè)置亮度值為255
  Settings.System.putInt(mContentResolver,
      Settings.System.SCREEN_BRIGHTNESS, value);
}

設(shè)置當(dāng)前窗口亮度

很多視頻應(yīng)用,在touch事件處理屏幕亮度時(shí),并不是修改的系統(tǒng)亮度值,而是修改當(dāng)前應(yīng)用所在窗口的亮度。具體做法就是修改LayoutParams中的screenBrightness屬性。參考代碼如下:

private void setWindowBrightness(int brightness) {
  Window window = getWindow();
  WindowManager.LayoutParams lp = window.getAttributes();
  lp.screenBrightness = brightness / 255.0f;
  window.setAttributes(lp);
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論