android-settings添加字体更换-前篇-setting简单一览
来源:互联网 发布:c高级编程 编辑:程序博客网 时间:2024/06/05 10:51
因为要在设置里面添加字体的featrue ,学习了一下android里面的settings。
进入源码查看,Settings.java ,根据继承关系,实际上就是一个ListActivity。
他的布局在XML里面用<prefefence-headers></>来包含<header/ >节点。
因为是ListActivity,本质上用一个ListVIew,设置Adapter来布局。特别的是,定义内部类HeaderAdapter,类中设置三种样式(分类、一般、开关)。
eg.根据XML的Header的属性来确定ItemView的样式
static int getHeaderType(Header header) { if (header.fragment == null && header.intent == null) { return HEADER_TYPE_CATEGORY; } else if (header.id == R.id.wifi_settings || header.id == R.id.bluetooth_settings) { return HEADER_TYPE_SWITCH; } else { return HEADER_TYPE_NORMAL; } }
设置适配器的时候,从XML获取<header>节点,加入到Adapter的数组中。显示时,获取节点Fragment。
--
总之,添加一个选项时,添加一个header,设置对应的图标,文字,设置样式。
而我们是在已有的显示的选项目录下面,添加一个选项。
Display_setting.java 和自己写的偏好设置一样,我们来看他的XML文件的布局。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/display_settings" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> <com.android.settings.BrightnessPreference android:title="@string/brightness" android:persistent="false"/> <PreferenceScreen android:key="wallpaper" android:title="@string/wallpaper_settings_title" android:fragment="com.android.settings.WallpaperTypeSettings" /> <CheckBoxPreference android:key="accelerometer" android:title="@string/accelerometer_title"/> <ListPreference android:key="screen_timeout" android:title="@string/screen_timeout" android:summary="@string/screen_timeout_summary" android:persistent="false" android:entries="@array/screen_timeout_entries" android:entryValues="@array/screen_timeout_values" /> <PreferenceScreen android:key="screensaver" android:title="@string/screensaver_settings_title" android:fragment="com.android.settings.DreamSettings" /> <com.android.settings.WarnedListPreference android:key="font_size" android:title="@string/title_font_size" android:summary="@string/summary_font_size" android:entries="@array/entries_font_size" android:entryValues="@array/entryvalues_font_size" android:dialogTitle="@string/dialog_title_font_size" /> <CheckBoxPreference android:key="notification_pulse" android:title="@string/notification_pulse_title" android:persistent="false" /> <PreferenceScreen android:key="wifi_display" android:title="@string/wifi_display_settings_title" android:fragment="com.android.settings.wfd.WifiDisplaySettings" />
对于这种结构,可参考View的(groupview&view)。
--我们添加一个PreferenceScreen,里面设置一个Intent,设置包名,启动类,跳转到我们自己的apk。
--其他的可以通过key来获取对象,进行设置侦听,处理。
- android-settings添加字体更换-前篇-setting简单一览
- android-settings添加字体更换-中篇-FontStyle更换的解决方案
- android-settings添加字体更换-后篇-FontManger的apk实现
- android 更换字体
- Android TextView更换字体
- Android开发--更换字体
- Android开发--更换字体
- Eclipse 如何添加 更换字体
- 一种简单的Android 中全局更换字体的方法
- Android Settings添加选项
- Android 如何更换系统字体
- Android APP开发字体更换
- C#Setting.settings
- C# Setting.settings
- 快速使用反射更换Android全局字体
- Android主题更换简单实践
- Android添加新字体
- Android字体的添加
- Deep Learning论文笔记之(七)深度网络高层特征可视化
- ASP.NET MVC中在Action获取提交的表单数据方法总结 .
- 午后街头、写封信给未来。
- 动态添加s 文件的方法
- 好记心,不如烂笔头
- android-settings添加字体更换-前篇-setting简单一览
- android存储方式
- mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法
- ios中自定义cell,自定义UITableViewCell
- s3c6410中断处理
- 交通灯管理系统和银行业务调度系统学习
- HTML5 LocalStorage本地存储和sessionStorage使用
- 《大话存储2:存储系统架构与底层原理极限剖析》电子书下载
- ZOJ 2725 SG函数 DP