Settings->Accessibility->Large text分析
来源:互联网 发布:单片机相序检测程序 编辑:程序博客网 时间:2024/06/07 10:10
自己胡乱的研究了一番Settings->Accessibility->Large text,点击Large text的CheckBox字体如何变化的。
首先AccessibilitySettings.java
/packages/apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java
@Override public void onResume() { super.onResume(); loadInstalledServices();//先加载 updateAllPreferences();
private void updateAllPreferences() {432 updateServicesPreferences();433 updateSystemPreferences();434 }
private void updateSystemPreferences() {536 // Large text.537 try {538 mCurConfig.updateFrom(ActivityManagerNative.getDefault().getConfiguration());539 } catch (RemoteException re) {540 /* ignore */541 }542 mToggleLargeTextPreference.setChecked(mCurConfig.fontScale == LARGE_FONT_SCALE);543
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { Log.d("debug", "onPreferenceTreeClick------");271 if (mToggleLargeTextPreference == preference) { //Large Text那个选项272 handleToggleLargeTextPreferenceClick();//调用该方法273 return true;274 } else if (mToggleHighTextContrastPreference == preference) {275 handleToggleTextContrastPreferenceClick();276 return true;277 } else if (mTogglePowerButtonEndsCallPreference == preference) {278 handleTogglePowerButtonEndsCallPreferenceClick();279 return true;280 } else if (mToggleLockScreenRotationPreference == preference) {281 handleLockScreenRotationPreferenceClick();282 return true;283 } else if (mToggleSpeakPasswordPreference == preference) {284 handleToggleSpeakPasswordPreferenceClick();285 return true;286 } else if (mGlobalGesturePreferenceScreen == preference) {287 handleToggleEnableAccessibilityGesturePreferenceClick();288 return true;289 } else if (mDisplayMagnificationPreferenceScreen == preference) {290 handleDisplayMagnificationPreferenceScreenClick();291 return true;292 }293 return super.onPreferenceTreeClick(preferenceScreen, preference);294 }295
接着
private void handleToggleLargeTextPreferenceClick() { try { Log.d("debug", "handleToggleLargeTextPreferenceClick------"); mCurConfig.fontScale = mToggleLargeTextPreference.isChecked() ? LARGE_FONT_SCALE : 1; //调用ActivityManagerNative.java里面的updatePersistentConfiguration()方法 ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig); } catch (RemoteException re) { /* ignore */ } }
紧接着之调用到
/frameworks/base/core/java/android/app/ActivityManagerNative.java
public void updatePersistentConfiguration(Configuration values) throws RemoteException5219 {Log.d("debug","updatePersistentConfiguration--------");5220 Parcel data = Parcel.obtain();5221 Parcel reply = Parcel.obtain();5222 data.writeInterfaceToken(IActivityManager.descriptor);5223 values.writeToParcel(data, 0);5224 mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0);5225 reply.readException();5226 data.recycle();5227 reply.recycle();5228 }
log输出:
D/debug ( 2559): onPreferenceTreeClick——
D/debug ( 2559): handleToggleLargeTextPreferenceClick——
D/debug ( 2559): updatePersistentConfiguration——
D/debug ( 2559): updateSystemPreferences—-
0 0
- Settings->Accessibility->Large text分析
- Text Entry Systems: Mobility, Accessibility, Universality
- Sublime Text User Settings
- Settings分析
- Accessibility
- Accessibility
- How to detect Normal or Large font size settings (DPI)
- Android Settings应用分析
- Android Settings模块分析
- Android4.2.2 settings分析
- Settings源码分析
- Android Settings模块分析
- android 4.4 Settings分析
- Android Settings模块分析
- android Settings 分析
- Settings指令分析
- Scrapy-settings源码分析
- Settings源码分析
- Qt多线程编程一:使用QSemaphore和waitCondition管理一系列资源
- 第五周项目一 三角形
- 面向对象编程学习一点感悟(java)
- 俄罗斯方块单人游戏设计概述
- git 提交模版设置
- Settings->Accessibility->Large text分析
- 拷贝构造函数之深拷贝浅拷贝
- Java学习·final
- 动态规划 —— 求解二项式系数
- POJ 3904 Sky Code (容斥原理)
- 第五周项目一 2
- sql 常用数学函数
- 清除浮动
- 关于垃圾回收的小结