android 夜间模式

本文介绍了Android从7.0开始引入的夜间模式,探讨了其硬件依赖性,并提供了相关代码路径,包括NightDisplayService和NightDisplayController。夜间模式的效果取决于设备是否支持硬件级别的颜色矩阵转换,以此在不增加额外成本的情况下实现屏幕色彩的柔和调整。
摘要由CSDN通过智能技术生成

自7.0开始谷歌提供了夜间模式,用于将屏幕色彩调成较为柔和的琥珀色,但因该模式需要硬件的支持,所以不是所有设备上都可用,也不常见。

相关代码:
\frameworks\base\services\core\java\com\android\server\display\NightDisplayService.java
\frameworks\base\core\java\com\android\internal\app\NightDisplayController.java
\frameworks\base\core\res\res\values\config.xml

设置中相关代码:
\packages\apps\Settings\src\com\android\settings\display\NightDisplaySettings.java

夜间模式的开启和关闭,相关方法代码的调用,可完全参考设置中的夜间模式,config中默认配置如下,从配置中可见,夜间模式是否能够生效,主要依赖硬件:是否拥有HWC引入功能,能够在不增加耗电、性能、兼容性的情况下,实现颜色矩阵转换操作。

//要修改夜间模式,需要有权限:
<permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE"
                android:protectionLevel="signature|privileged" />
<bool name="config_lockDayNightMode">false</bool>

    <!-- Control the default night mode to use when there is no other mode override set.
         One of the following values (see UiModeManager.java):
             0 - MODE_NIGHT_AUTO
             1 - MODE_NIGHT_NO
             2 - MODE_NIGHT_YES
    -->
    <integer name="config_defaultNightMode">1</integer>

    <!-- Boolean indicating whether the HWC setColorTransform function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值