`
weicaijin8
  • 浏览: 34153 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

修改设置Android Preference相关样式

阅读更多
使用google默认的PreferenceActiivty实现了该功能,但都是默认的背景和字体。怎么才改变它们的样式呢?PreferenceActivity继承ListActivity,所以本质上它是列表,所以可以通过得到它的ListView来设置背景或其它样式,如:

    getListView().setBackgroundColor(Color.BLUE);

复制代码
背景颜色是变了,当时当你滚动这个列表项时候,是不是会发现后面好像还有黑色背景。那怎么去掉这个黑色背景呢?只需要改变它的缓存色为透明即可,如:

    getListView().setCacheColorHint(Color.TRANSPARENT);

复制代码
这样就解决了滚动黑屏的问题了。其实还有一个地方的样式不知道怎么修改。就是PreferenceCategory(偏好分类)的样式怎么修改呢?我参考了其它人的一些观点,发现都没有生效。最后看了PreferenceCategory的源码,发现了该类的注释:Used to group {@link Preference} objects * and provide a disabled title above the group.这说明这上面标题是disabled的。那怎么才可以修改呢?最后经过测试,发现自定义一个PrefereceCategory可以达到自己的要求,java代码如下:

    package com.rlht.enforce.widget;

    import android.content.Context;
    import android.graphics.Color;
    import android.graphics.Typeface;
    import android.preference.PreferenceCategory;
    import android.util.AttributeSet;
    import android.view.View;
    import android.widget.TextView;
    /**
    * 自定义设置Preference的category。google默认的Category无法提供修改样式的接口
    * @author Zhuhanshan
    *
    */
    public class MyPreferenceCategory extends PreferenceCategory{

            public MyPreferenceCategory(Context context, AttributeSet attrs) {
                    super(context, attrs);
            }

            @Override
            protected void onBindView(View view) {
                    super.onBindView(view);
                    view.setBackgroundColor(Color.GRAY);
                    if(view instanceof TextView){
                            TextView tv = (TextView) view;
                            tv.setTextSize(18);
                    }
            }

    }

复制代码
然后在peference.xml中使用这个自定义组件即可,xml如下:

    <com.rlht.enforce.widget.MyPreferenceCategory android:title="@string/base_setting">
                    <EditTextPreference android:key="username"
                            android:defaultValue="@null"
                            android:title="@string/username"/>
                    <EditTextPreference android:key="password"
                            android:defaultValue="@null"
                            android:title="@string/password" />
            </com.rlht.enforce.widget.MyPreferenceCategory>

复制代码
分享到:
评论

相关推荐

    android Preference自定义样式

    综上所述,自定义Android的Preference样式涉及到多个层次,包括使用主题、布局、视图、属性和代码动态修改。理解这些方法,开发者可以根据自己的需求为用户创造更加美观和个性化的设置界面。在实际项目中,应根据...

    Android Preference Framework源码

    8. **主题和样式**:Preference Framework支持主题和样式,可以通过修改主题属性来改变设置界面的整体视觉效果。 9. **动态添加和移除Preference**:在运行时,可以使用PreferenceManager的...

    安卓Android源码——Preference_Demo.rar

    6. **样式和主题**:可以通过修改主题或者设置自定义样式来改变Preference的视觉效果,如字体颜色、背景色等。 7. **测试和调试**:在运行应用时,可以通过模拟用户操作来测试设置界面的功能是否正常,同时可以在...

    android 探索首选项框架xxxPreference

    在Android开发中,首选项(Preference)框架是一个关键部分,它允许开发者创建用户界面来管理应用的设置。这篇博文“android 探索首选项框架xxxPreference”深入剖析了这一核心组件,通过源码分析和实践工具的应用,...

    Android设置PreferenceCategory背景颜色的方法

    在Android开发中,PreferenceCategory是用于在PreferenceScreen中创建分类的一种元素,通常用来组织相关的设置项。然而,PreferenceCategory的默认样式可能不满足所有设计需求,尤其是当开发者想要自定义界面风格时...

    自定义Preference

    在Android开发中,Preference是用来构建用户设置界面的一种组件。它提供了许多预定义的选项,如开关、选择框、单选按钮等,使得开发者能够轻松创建类似系统设置的界面。然而,有时我们可能需要自定义Preference以...

    Android应用源码之Preference_Demo.zip

    在Android开发中,Preference是构建用户界面的一种重要组件,它主要用于创建设置界面,允许用户进行各种设置选项的交互。在“Android应用源码之Preference_Demo.zip”这个压缩包中,我们可以深入理解如何使用和...

    Android-Support-Preference-V7-Fix-master.zip

    此修复项目 "Android-Support-Preference-V7-Fix-master" 可能包含源代码修改、补丁或者解决方案,以解决在使用 v7 版本的偏好设置时遇到的问题,如崩溃、显示异常或其他不兼容问题。通常,这类修复可能涉及到以下几...

    50 android hacks - hack4

    总的来说,Android的Preference系统是实现用户设置的关键工具。通过自定义Preference和PreferenceFragment,我们可以打造出个性化的设置界面,提高应用的可配置性和用户体验。在实践中,理解并掌握这些技巧,不仅...

    Android房iPhone风格设置页面

    3. **设置样式**:为了达到更接近iPhone的视觉效果,可能需要自定义主题或者修改`Preference`的样式。这可以通过在`res/values/styles.xml`文件中定义新的主题或改变默认的`Preference`样式来实现。 4. **处理点击...

    模仿Android4.3版本短信设置功能

    5. **主题和样式**:为了保持与Android 4.3系统的风格一致,开发者需要注意设置界面的主题和颜色,确保UI的一致性和美观性。 6. **权限管理**:某些设置可能需要特定的权限,如访问联系人、发送短信等,需要在...

    android4.0 settings 设置 模块 源代码

    Android的设置界面基于`Preference`框架,这是Android UI组件库的一部分。`Preference`类及其子类(如`CheckBoxPreference`, `SwitchPreference`等)用于创建可交互的设置项。在源代码中,每个设置项都对应一个`...

    android 仿ios风格的SwitchButton

    总之,实现"android 仿ios风格的SwitchButton"需要结合XML布局、自定义样式、事件监听和可能的自定义Preference类。这不仅提升了应用的视觉一致性,也为用户提供了一种熟悉的操作方式。通过不断优化和调试,可以创造...

    Android-Android通用设置库用于处理应用程序中的各种项目

    7. **主题和样式**:通用设置库可能允许开发者轻松地改变设置界面的整体风格,包括字体、颜色、图标等,以适应应用的品牌和视觉指南。 8. **动画和过渡效果**:为了提升用户体验,库可能会包含一些预设的动画和过渡...

    Preference demo

    Preference组件在Android开发中扮演着重要的角色,它主要用于管理应用的用户设置和偏好。这个"Preference demo"显然是一个示例项目,旨在展示如何在Android应用中有效地使用Preference。"good good study, day day ...

    Android Launcher 源码修改可编译.zip源码资源下载

    6. **Preference**: 对于设置界面,`PreferenceFragment`和`PreferenceScreen`会用来构建用户可以自定义的设置项。 为了修改和编译Android Launcher源码,你需要一个完整的Android开发环境,包括安装了Android SDK...

    android-support-v4-preferencefragment-master

    10. **主题和样式**:`PreferenceFragment`支持使用Android的主题和样式来改变设置界面的外观,可以通过设置主题或者在XML布局中指定样式属性来实现。 综上所述,`android-support-v4-preferencefragment-master`库...

    自定义PreferenceActivity的样式和界面

    在Android开发中,PreferenceActivity是用于创建设置界面的标准组件,它允许开发者以XML方式定义用户界面,然后在活动中展示这些设置项。然而,系统默认的PreferenceActivity样式可能无法满足所有设计需求,这时我们...

    Android4.4 settings源码

    `android.preference` 包含了各种偏好类,如 `CheckBoxPreference`、`SwitchPreference` 和 `PreferenceScreen`,它们在设置界面中表现为复选框、开关按钮和子菜单。 3. **事件处理**: 当用户在设置界面中进行...

    安卓Settings、系统自带设置软件源码

    安卓系统的Settings应用是用户与设备交互的重要组成部分,它提供了对设备各种设置的访问和修改功能,如网络设置、隐私设置、应用管理等。这个源码分析将深入探讨Settings应用的内部工作原理,以及如何通过源码理解其...

Global site tag (gtag.js) - Google Analytics