Android NumberPicker默认外观的修改

NumberPicker是Android3.0之后引入的一个控件,在以后的TimePicker和DatePicker时间控件里边都有引用,NumberPicker本身并没有提供接口给开发者修改其默认外观,这里延续前篇博客的内容( 调整TimePicker,DatePicker的大小、样式 ),提供一个修改NumberPicker默认外观(主要是修改字体大小,颜色)的方法。如果你是使用Android3.0以后的版本,而且你只需要修改NumberPicker的字体,那这是最偷懒的方法。效果还是先上图。

左边红色方框里边是一个NumberPicker控件,修改了它的字体和颜色。

实现的方法是使用CustomNumberPicker继承NumberPicker控件,在其子控件EditText加载时修改其属性,详细如下:

public class CustomNumberPicker extends NumberPicker
{

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

    @Override
    public void addView(View child)
    {
        super.addView(child);
        updateView(child);
    }

    @Override
    public void addView(View child, int index,
            android.view.ViewGroup.LayoutParams params)
    {
        super.addView(child, index, params);
        updateView(child);
    }

    @Override
    public void addView(View child, android.view.ViewGroup.LayoutParams params)
    {
        super.addView(child, params);
        updateView(child);
    }

    public void updateView(View view)
    {
        if (view instanceof EditText)
        {
             //这里修改字体的属性
            ((EditText) view).setTextSize(12);
            ((EditText) view).setTextColor(Color.RED);
        }
    }

}    

然后再xml文件使用CustomNumberPicker替换NumberPicker就可以了。

但是大部分的应用需要支持Android3.0以前的版本,这个时候你就需要自己写NumberPicker控件了,幸运的是这部分工作,已经有人替你做了,你只需要拿来主义就好了。

来自于GitHub的 NumberPicker 控件,点击下载后就可以使用。它是根据Android的源码编写,结合 library使用,而达到后向兼容Android版本的。由于自己没有使用过,所以不在多写,有需要的同学可以下载使用。

时间: 2024-10-10 08:49:37

Android NumberPicker默认外观的修改的相关文章

Android 系统默认参数的修改

转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置,通常这些属性都是通过build.prop.settings.db .default.xml.一些功能package下的 config.xml 等来进行初始化配置的. 那么,要满足客户的定制需求,对于我们开发者来说,修改SettingsProvider默认值,而第一次开机时,用来填充settings.

Android系统默认输入法的修改为搜狗输入法

1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法 <stringname="config_default_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME         </string> <stringname=&qu

Android系统默认输入法的修改

1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法 <stringname="config_default_input_method" translatable="false">com.sohu.inputmethod.sogou/.SogouIME         </string> <stringname=&qu

修改Android Studio默认的API Level(SDK版本)

原文:修改Android Studio默认的API Level(SDK版本) Android Studio(2.1.2)新建工程的时候只会让你选择最低支持的SDK版本,默认的目标编译SDK版本会以系统当前SDK中最新SDK platform作为目标的API Level.但是很多时候我们并不需要最新的SDK版本,如何修改呢? 方法是:修改工程目录中的Gradle Scripts->build.gradle(Module:app)中的相关行,具体见下图: 当然也可以图形化操作,右键工程目录选择"

快速修改android系统默认日期方法

在android系统的设备上,都有一个默认的开始日期,看过很多设备,有些设备在没有联网的时候没有同步到系统时间的时候,居然默认的还是1970年的日期,也见过有些设备默认到2000年1月1日的,这样相对进了一步,但是还不够.笔者下面很简单的介绍一下一个超级简单的方法: /*****************************************************************************************************/声明:本博内容均由http

使用appearance proxy定制控件的默认外观(详解)

控件的外观,受到tint color,background image, background color等属性的共同影响,通常要修改某个控件对象的外观,就去调用上面属性的相关setter方法(或者其他可以修改它们的方法)就可以了.但是,如果希望整个app中的控件都保持一致的风格,比如所有button的风格(指的是大小,背景图,形状等)都一样,那么一个一个去重复设置每个button的风格,就显得太麻烦了.如果可以给Button类设定一个默认外观,就方便多了.appearance proxy就可以

Android开发周报:Android L默认加密用户数据

Android开发周报:Android L默认加密用户数据 新闻 <iCloud前车之鉴,Android L默认开启加密功能>:iCloud 艳照风波再起,第二波女星照片流出,大量女星的裸照又开始在社交网站疯传,本次大规模的“艳照门”依然有可能是黑客利用苹果iCloud云端系统的漏洞, 在破解了女艺人们所设的简单密码后侵入并非法盗取了裸照,继而在网络论坛发布.注重保护用户的隐私,是厂商们义不容辞的责任,谷歌宣布Android L上将默认加密用户数据. <苹果出了个指南教你怎么从Andro

编译Android时,添加或者删除system.img中第三方apk、更改Android系统默认语

/******************************************************************************************** * author:conowen@大 钟                                                                                                                           * E-mail:[ema

Android设置默认Launcher

当系统存在多个launcher时,若没有设置默认launcher,开机启动后会弹出提示框,罗列所有launcher,用户选择并设置了默认launcher后,按home键以及以后重启都会进入默认的launcher. 现在,我希望系统能直接就进入我设定的launcher而不是弹出框后选择然后设置 网上大部分的做法就是修改 packages/apps/Provision/src/com/android/DefaultActivity.java 和 framework/base/java/com/and