首先,Preference相关的东西都是以list的形式展现给大家的,所以,修改的样式一般可以分为2类:1.listitem背景修改。2.listitem具体view修改。我们分别对下面四种情况进行分析。
1.activity继承自PreferenceActivity
1).可以通过getListView()来获取listview对象,然后设置listview的相关属性。如4.0.3的设置应用,首界面是通过加载loadHeadersFromResource(R.xml.settings_headers, headers);
2).一般如果自己写对应adapter的话,listitem的具体view信息就可以具体进行操作了,位置在adapter的getview函数中。
2.PreferenceFragment
对于这种形式的很难进行修改,首先找出其加载的layout文件,一般layout文件中存在具体的配置信息,如PreferenceScreen等,然后可以具体的进行修改。在这个中间是获取不到getListView()方法的。
复写onActivityCreated()方法,在里边可以获得getListView()对象。
3.PreferenceScreen
在节点中配置stle属性,来进行item的具体控制,如style="@style/Preference_Holo"
<style name="Preference_Holo">
<item name="android:layout">@layout/preference_holo</item>
</style>
此处需要注意@layout/preference_holo的具体配置,最好和系统的保持一致(具体view的id等信息)
4.PreferenceCategory
它的修改需要复写PreferenceCategory类,一般采用继承的方法,然后在onBindView中修改标题的样式,如:
public class SPreferenceCategory extends PreferenceCategory {
public SPreferenceCategory(Context context) {
super(context);
}
public SPreferenceCategory(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SPreferenceCategory(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
view.setBackgroundResource(R.drawable.list_title_bg_normal);
if (view instanceof TextView) {
TextView tv = (TextView) view;
// tv.setTextSize(16);
tv.setTextColor(Color.BLACK);
}
}
}
总结:1.最好的控制方法是自定义控件,这样就可以随意的控制样式,得到自己需要的。2.首先找到xml文件,然后根据xml文件的内容,再进行修改,如果很难修改,就继续往framework层延伸,找到相关的内容,然后移植到自己的应用。3.PreferenceCategory主要负责标题的样式。其里边的子项就是listitem。最好的学习方式是尝试修改系统的setting应用,里面包含的preference-headers,header等很有意思。
分享到:
相关推荐
综上所述,自定义Android的Preference样式涉及到多个层次,包括使用主题、布局、视图、属性和代码动态修改。理解这些方法,开发者可以根据自己的需求为用户创造更加美观和个性化的设置界面。在实际项目中,应根据...
8. **主题和样式**:Preference Framework支持主题和样式,可以通过修改主题属性来改变设置界面的整体视觉效果。 9. **动态添加和移除Preference**:在运行时,可以使用PreferenceManager的...
6. **样式和主题**:可以通过修改主题或者设置自定义样式来改变Preference的视觉效果,如字体颜色、背景色等。 7. **测试和调试**:在运行应用时,可以通过模拟用户操作来测试设置界面的功能是否正常,同时可以在...
- UI定制:可能对默认的UI样式进行了修改,以适应特定应用的视觉风格。 4. **源码分析**: - 理解Preference的工作原理:查看源码可以帮助理解点击事件处理、值的存储与恢复等机制。 - 学习如何继承和扩展:分析...
此修复项目 "Android-Support-Preference-V7-Fix-master" 可能包含源代码修改、补丁或者解决方案,以解决在使用 v7 版本的偏好设置时遇到的问题,如崩溃、显示异常或其他不兼容问题。通常,这类修复可能涉及到以下几...
- 可以通过创建主题样式或者在`style.xml`中定义`<style>`,然后在`Preference`的XML定义中使用`android:layout="@layout/custom_preference"`和`android:theme="@style/CustomPreferenceTheme"`来应用自定义样式。...
总之,实现"android 仿ios风格的SwitchButton"需要结合XML布局、自定义样式、事件监听和可能的自定义Preference类。这不仅提升了应用的视觉一致性,也为用户提供了一种熟悉的操作方式。通过不断优化和调试,可以创造...
本文将深入探讨Android Launcher的源码结构、关键组件以及如何进行修改和编译。 首先,理解Android Launcher的源码结构是至关重要的。源码通常包括多个模块,如UI布局文件、Java代码、资源文件(如图片、字符串资源...
在Android开发中,PreferenceCategory是用于在PreferenceScreen中创建分类的一种元素,通常用来组织相关的设置项。然而,PreferenceCategory的默认样式可能不满足所有设计需求,尤其是当开发者想要自定义界面风格时...
- SwitchPreferenceCompat(API 21+):在Android Lollipop及更高版本中,提供了切换开关样式。 - EditTextPreference:允许用户输入文本,常用于设置自定义文本值。 - ListPreference:显示为下拉列表,用户可以...
3. **设置样式**:为了达到更接近iPhone的视觉效果,可能需要自定义主题或者修改`Preference`的样式。这可以通过在`res/values/styles.xml`文件中定义新的主题或改变默认的`Preference`样式来实现。 4. **处理点击...
例如,我们可以修改Preference的分割线颜色,标题和子标题的样式等。 此外,对于复杂的自定义需求,我们可以使用PreferenceFragment替代PreferenceActivity。PreferenceFragment提供了更大的灵活性,可以更容易地将...
Android的设置界面基于`Preference`框架,这是Android UI组件库的一部分。`Preference`类及其子类(如`CheckBoxPreference`, `SwitchPreference`等)用于创建可交互的设置项。在源代码中,每个设置项都对应一个`...
`android.preference` 包含了各种偏好类,如 `CheckBoxPreference`、`SwitchPreference` 和 `PreferenceScreen`,它们在设置界面中表现为复选框、开关按钮和子菜单。 3. **事件处理**: 当用户在设置界面中进行...
这份“android settings 源码”可能是对原生Android Settings应用的修改版本,用于研究、定制或者优化Android系统的设置功能。下面我们将详细探讨Android Settings源码中的关键知识点。 1. **组件架构**: Android...
这份"《Android应用程序开发》源代码"包含了官方未修改的示例,为初学者和经验丰富的开发者提供了一个深入理解Android SDK和编程实践的宝贵资源。 Android应用主要由Java或Kotlin语言编写,遵循MVC(Model-View-...
这涉及到 Android 的主题和样式系统,以及自定义视图的绘制。自定义设置可以集成到 Settings 应用中,提供独特的用户体验。 8. **动态设置** 动态设置是指某些设置项根据设备状态或用户行为实时变化。例如,电池...
◆与电话和网络硬件相关的所有内容,如电话api、sms和网络管理等 ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术 读者对象 本书面向希望在android手机平台上创建应用程序的所有人员。不管是...
"仿IOS的PreferenceActivity界面"就是一个这样的实践,它主要涉及到Android的Preference类和Activity的使用,以及UI样式的美化。PreferenceActivity是Android系统提供的一种用于展示设置界面的特殊Activity,它能够...
9. **Material Design**:Android 7.0遵循Material Design设计指南,Settings应用的UI布局和样式反映了这一设计理念。通过源码,我们可以看到如何实现Material Design组件和动画效果。 10. **优化和性能**:在源码...