欧洲精品久久久av无码电影,日日噜噜夜夜爽爽,精品无码国产自产拍在线观看蜜,人妻少妇被粗大爽9797pw,羞国产在线拍揄自揄视频,国产白嫩漂亮美女在线观看,天码欧美日本一道免费,av大片在线无码免费

      歡迎來到同城快修-附近家電維修、家電清洗、家電安裝服務平臺

      24小時家電維修熱線:

      400—1558638

      當前位置:主頁 > 空調 > 維修資訊 >

      調整屏參怎么調(如何調屏參數設置)

      發布日期:2023-01-16 12:20:07 瀏覽:
      調整屏參怎么調(如何調屏參數設置)

      前沿拓展:


      效果

      修改系統屏幕亮度這種操作還是挺常見的,一般在多媒體開發中都多少會涉及到。

      emmm 效果圖好像看不出來變化。。不過不是很重要。。

      操作拆解

      上圖中可以看到,分別有加減按鈕和seekbar來控制亮度。

      后面會涉及到相關的事件。

      獲取系統屏幕亮度 / 獲取系統屏幕亮度(0255) / private fun getScreenBrightness(): Int { try { return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS) } catch (e: SettingNotFoundException) { e.printStackTrace() } return 0 }

      注意,這里的返回值是0255區間的。

      定義兩個參數:

      private var mScreenBrightness: Int = 0 //當前屏幕亮度private var ratio: Int = 25 //每次加減的比例

      因為返回值最大是255,假設亮度調節是10檔,每次加減1檔大約是25,這個精度可以自己控制。

      設置當前應用屏幕亮度,只當前有效加減按鈕操作 btn_add.setOnClickListener { if (mScreenBrightness < (255 ratio)) { mScreenBrightness += ratio } else { mScreenBrightness = 255 } setWindowBrightness(mScreenBrightness) updateNum(mScreenBrightness) } btn_reduce.setOnClickListener { if (mScreenBrightness > ratio) { mScreenBrightness = ratio } else { mScreenBrightness = 1 } setWindowBrightness(mScreenBrightness) updateNum(mScreenBrightness) }

      如果設置亮度的值大于255了,不會報錯,但是會回到初始值,所以加減操作的時候要判斷一下最大值最小值。

      接下來看一下核心方法setWindowBrightness:

      / 設置當前應用屏幕亮度,只當前有效 / private fun setWindowBrightness(brightness: Int) { val window = window val lp = window.attributes lp.screenBrightness = brightness / 255.0f window.attributes = lp }

      很簡單,設置window的屬性即可。這個只會對當前頁面有效,返回頁面或退到后臺,屏幕亮度都會恢復到初始值狀態。

      updateNum方法是更新頁面顯示:

      / 更新頁面顯示 / private fun updateNum(mScreenBrightness: Int) { //轉float 取四舍五入 val i: Int = (mScreenBrightness / (ratio.toFloat())).roundToInt() tv_brightness.text = i.toString() seekBar.progress = i }

      其實到這里,已經能滿足大部分的需求了。

      Github: https://github.com/yechaoa/BrightnessAndVolume

      設置系統屏幕亮度,影響所有頁面和app

      前面講到的其實是單頁面的亮度設置,也可以修改系統的屏幕亮度,即影響所有的頁面和app,一般不會有這種操作。這也涉及到一個高級隱私權限,是否允許修改系統設置,且需要在app設置頁面手動授權。

      且需要先在manifest中添加:

      <! 修改系統屏幕亮度 > <usespermission android:name=&34;android.permission.WRITE_SETTINGS&34; tools:ignore=&34;ProtectedPermissions&34; />

      這里分幾個小步驟:

      判斷權限有則修改亮度無則引導授權seekBar操作 seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { Log.i(&34;onProgressChanged&34;, &34;&34; + progress) mScreenBrightness = progress ratio //判斷是否有修改系統設置權限 if (Settings.System.canWrite(this@BrightnessActivity)) { setScreenBrightness(mScreenBrightness) updateNum(mScreenBrightness) } else { Toast.makeText(this@BrightnessActivity, &34;沒有修改權限&34;, Toast.LENGTH_SHORT).show() // 打開允許修改系統設置權限的頁面 val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse(&34;package:$packageName&34;)) startActivityForResult(intent, mRequestCode) } } override fun onStartTrackingTouch(seekBar: SeekBar?) { } override fun onStopTrackingTouch(seekBar: SeekBar?) { } })

      用Settings.System.canWrite來判斷是否已授權。

      已授權

      看setScreenBrightness方法:

      / 設置系統屏幕亮度,影響所有頁面和app 注意:這種方式是需要手動權限的(android.permission.WRITE_SETTINGS) / private fun setScreenBrightness(brightness: Int) { try { //先檢測調節模式 setScreenManualMode() //再設置 Settings.System.putInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness) } catch (e: SettingNotFoundException) { e.printStackTrace() } }

      我們看到在設置之前,還有一步操作是先檢測調節模式,因為如果當前亮度是自動調節的,需要改為手動才可以。

      / 設置系統亮度調節模式(SCREEN_BRIGHTNESS_MODE) SCREEN_BRIGHTNESS_MODE_MANUAL 手動調節 SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自動調節 / private fun setScreenManualMode() { try { //獲取當前系統亮度調節模式 val mode = Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE) //如果是自動,則改為手動 if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt( this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL ) } } catch (e: SettingNotFoundException) { e.printStackTrace() } }

      亮度調節模式

      SCREEN_BRIGHTNESS_MODE_MANUAL 手動調節SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自動調節未授權

      未授權的情況下,要提示并引導用戶去授權

      Toast.makeText(this@BrightnessActivity, &34;沒有修改權限&34;, Toast.LENGTH_SHORT).show() // 打開允許修改系統設置權限的頁面 val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse(&34;package:$packageName&34;)) startActivityForResult(intent, mRequestCode)

      同時,檢測返回結果并處理即可

      / 處理返回結果 / override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == mRequestCode) { if (Settings.System.canWrite(this@BrightnessActivity)) { setScreenBrightness(mScreenBrightness) } else { Toast.makeText(this@BrightnessActivity, &34;拒絕了權限&34;, Toast.LENGTH_SHORT).show() } } }

      以上可以看到,不管是改模式還是改亮度,都是用的Settings.System.putInt方法,也就是修改了系統的設置,從而達到所有頁面和app使用同一亮度的需求。

      監聽系統亮度變化

      以上兩種方式其實都是我們手動去改的,那如果用戶自己去改變了亮度呢,我們頁面理應也要做出相應的改變,所以,還需要去監聽系統的亮度變化。

      這里也分幾個小步驟:

      注冊監聽處理變化注銷監聽注冊監聽 / 注冊監聽 系統屏幕亮度變化 / private fun registerContentObserver() { this.contentResolver?.registerContentObserver( Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS), true, mBrightnessObserver ) }處理變化 / 監聽系統亮度變化 / private val mBrightnessObserver = object : ContentObserver(Handler(Looper.getMainLooper())) { override fun onChange(selfChange: Boolean) { super.onChange(selfChange) try { this@BrightnessActivity.contentResolver?.let { mScreenBrightness = Settings.System.getInt(it, Settings.System.SCREEN_BRIGHTNESS) updateNum(mScreenBrightness) setWindowBrightness(mScreenBrightness) } } catch (e: SettingNotFoundException) { e.printStackTrace() } } }注銷監聽 override fun onDestroy() { super.onDestroy() //注銷監聽 this.contentResolver?.unregisterContentObserver(mBrightnessObserver) }

      ok,至此關于修改屏幕亮度的講解就全部結束了,如果對你有用,就點個贊吧^ ^

      Github

      https://github.com/yechaoa/BrightnessAndVolume

      拓展知識:

      主站蜘蛛池模板: 手机在线看片日韩| 密臀av在线| 精品一区欧美| 国产狂喷水潮免费网站www| 久久三区| 三级黄色在线视频| 亚洲国产精品一区二区成人片国内| 国产欧美va天堂在线观看视频| 性一交一乱一乱一视频| 中文字幕日韩精品亚洲一区| 20女人牲交片20分钟| 丝袜制服中文字幕| 97精品人妻系列无码人妻| 国产亚洲精品线观看动态图| 日日日干干干| 欧美另类z0zx974| 亚洲国产制服丝袜先锋| 变态 另类 欧美 大码 日韩| 伊人色图| 精品三级av| 国产手机在线精品| 欧美大片18禁aaa免费视频| 狠狠干导航| 亚洲男人第一无码av网站| 人妻少妇精品无码专区漫画 | 久久不卡区| 婷婷无套内射影院| 午夜无码福利伦利理免| 黄色片怎么看| 久久综合老鸭窝色综合久久 | 欧美专区在线观看| 国产精品99精品无码视| 蜜臀aⅴ国产精品久久久国产老师| 2021久久超碰国产精品最新 | 特黄少妇60分钟在线观看播放| 人妻无码一区二区三区欧美熟妇| 国产一级片av| 18禁国产一区二区三区| 加勒比东京热无码一区| www.久久精品| 激情丁香网|