亮度调节(一)

阅读: 评论:0

亮度调节(一)

亮度调节(一)

关于Android8.1的亮度调节的实现:
点击了BrightnessPreference以后会发送广播,对应的SettingsUI类接收广播并创建BrightnessDialog,这是一个关于调节亮度的对话框

BrightnessDialog

  @Overrideprotected void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);final Window window = getWindow();window.setGravity(Gravity.TOP);window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);questFeature(Window.FEATURE_NO_TITLE);// Use a dialog theme as the activity theme, but inflate the content as// the QS content.ContextThemeWrapper themedContext = new ContextThemeWrapper(this,com.android.internal.R.style.Theme_DeviceDefault_QuickSettings);View v = LayoutInflater.from(themedContext).inflate(R.layout.quick_settings_brightness_dialog, null);setContentView(v);final ImageView icon = findViewById(R.id.brightness_icon);final ToggleSliderView slider = findViewById(R.id.brightness_slider);//创建了BrightnessControllermBrightnessController = new BrightnessController(this, icon, slider);}@Overrideprotected void onStart() {Start();//调用registerCallbacks()isterCallbacks();MetricsLogger.visible(this, MetricsEvent.BRIGHTNESS_DIALOG);}

上述BrightnessDialog里面创建并且调用了BrightnessController的registerCallbacks()方法,通过这种方式设置了对进度条改变的监听

BrightnessController

public BrightnessController(Context context, ImageView icon, ToggleSlider control) {mContext = context;mIcon = icon;mControl = control;mControl.setMax(GAMMA_SPACE_MAX);mBackgroundHandler = new Handler((Looper) (Dependency.BG_LOOPER));//创建了CurrentUserTracker,是一个广播处理器,这里面接收到Intent.ACTION_USER_SWITCHED动作的时候,会触发onUserSwitched()mUserTracker = new CurrentUserTracker(mContext) {@Overridepublic void onUserSwitched(int newUserId) {mBackgroundHandler.post(mUpdateModeRunnable);mBackgroundHandler.post(mUpdateSliderRunnable);}};//创建了观察者mBrightnessObserver = new BrightnessObserver(mHandler);PowerManager pm = SystemService(PowerManager.class);mMinimumBacklight = pm.getMinimumScreenBrightnessSetting();mMaximumBacklight = pm.getMaximumScreenBrightnessSetting();mDefaultBacklight = pm.getDefaultScreenBrightnessSetting();mMinimumBacklightForVr = pm.getMinimumScreenBrightnessForVrSetting();mMaximumBacklightForVr = pm.getMaximumScreenBrightnessForVrSetting();mDefaultBacklightForVr = pm.getDefaultScreenBrightnessForVrSetting();mAutomaticAvailable = Resources().getBoolean(com.android.internal.fig_automatic_brightness_available);mDisplayManager = SystemService(DisplayManager.class);mVrManager = IVrManager.Stub.Service(Context.VR_SERVICE));}
被BrightnessDialog调用的registerCallbacks
 public void registerCallbacks() {if (mListening) {return;}if (mVrManager != null) {try {isterListener(mVrStateCallbacks);mIsVrModeEnabled = VrModeState();} catch (RemoteException e) {Log.e(TAG, "Failed to register VR mode state listener: ", e);}}mBackgroundHandler.post(mSta

本文发布于:2024-01-30 04:09:04,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655894819105.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:亮度
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23