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版本的。由于自己没有使用过,所以不在多写,有需要的同学可以下载使用。

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

  1. android模拟器默认位置的修改

    1.创建ANDROID_SDK_HOME环境变量,如ANDROID_SDK_HOME=D:\eclipse_android\android-sdk 2.在ANDROID_SDK_HOME目录下,建立. ...

  2. Android 系统默认参数的修改

    转自: http://www.th7.cn/Program/Android/201505/447097.shtml 写在前面的话 一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置, ...

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

    1.  frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中修改默认输入法为搜狗输入法 <stringnam ...

  4. Android之拨号界面图片风格,无信息默认显示界面修改

    Android之拨号界面图片风格,无信息默认显示界面修改 点开Dialer app,出现拨号,联系人,收藏三个选项卡,也就是三个Fragment,在三个界面都没有信息的时候会显示一个时钟,联系人,收藏 ...

  5. Android EditText默认不弹出输入法,以及获取光标,修改输入法Enter键的方法

    一.Android EditText默认不弹出输入法的办法:1. 在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性即可(常用此方法) android:windo ...

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

    原文:修改Android Studio默认的API Level(SDK版本) Android Studio(2.1.2)新建工程的时候只会让你选择最低支持的SDK版本,默认的目标编译SDK版本会以系统 ...

  7. Android源码分析(九)-----如何修改Android系统默认时间

    一 : 修改Android系统默认时间 源码路径:frameworks/base/services/java/com/android/server/SystemServer.java 主要变量EARL ...

  8. Android系统默认设置

    修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...

  9. Android 开机默认横竖屏

    做Android系统开发时,经常遇到机器开机默认横竖屏问题,现整理如下: 方法一:修改WindowManagerService.java 在这个类中修改int mRotation = 0;这个值即可. ...

随机推荐

  1. 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??

    使用 @WebMethod(operationName="multiParamByName")  重新指定名字. http://bbs.csdn.net/topics/270059 ...

  2. Oracle11G安装

    1.安装Oracle 记住要设置好密码 不要忘了 解锁scott(注意一定要解锁)账户, 去掉前面的绿色小勾,输入密码.同样可以输入平常用的短小的密码,不必非得按oracle建议的8位以上大小写加数字 ...

  3. CSS样式的优势

    为什么使用css样式来设置网页的外观样式呢?下面是一段文字,我们想把“超酷的互联网”.“服务及时贴心”.“有趣易学”这三个短语的文本颜色设置为红色,这时就 可以通过设置样式来设置,而且只需要编写一条c ...

  4. 更改tabBarItem图片的问题

    代码: UIImage *normal = [[UIImage imageNamed:@"tabbar_home_default"] imageWithRenderingMode: ...

  5. sublime text There are no packages 解决!

    1.问题如下图 解决如下: 1.取得sublime.wbond.net的IPv4地址.在命令提示符中输入以下命令: ping sublime.wbond.net 获得  pv 4 ip     2.C ...

  6. java常识和好玩的注释

    如字符串使用strXXXboolean使用isXXX,hasXXX Vector vProducts= new Vector(); Array aryUsers= new Array(); 类与接口基 ...

  7. 嵌入式开发(一) Ubuntu12.04下搭建交叉编译环境

    操作系统:Ubuntu12.04 AMD64位 交叉编译环境:arm-Linux gcc版本4.4.3 前言: 首先理解一下交叉编译的意思.我们要给嵌入式设备写应用程序,但是又不能在嵌入式设备上完成所 ...

  8. 12_RHEL7.1普通用户添加sudo权限

    1.关于sudo Sudo是linux系统中,非root权限的用户提升自己权限来执行某些特性命令的方式,它使普通用户在不知道超级用户的密码的情况下,也可以暂时的获得root权限.          一 ...

  9. js Math函数

    1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.fl ...

  10. JQUERY1.9学习笔记 之内容过滤器(一) 包含选择器

    描述:选择包含指定文本的所有元素.jQuery( ":contains(text)" ) text:一串大小写敏感的文本. 例:找出所有包含"john"的div ...