android numberpicker 自定义,Android 的NumberPicker相关问题

NumberPicker是Android3.0出的,在不同版本中的显示大概是这样的

d8de0da840b99f5c5143d6c3612f3904.pngce3fc0f75586ddbbcfb926b0c1f727dd.png

如果要使得显示的小于10的数字显示两位,需要加上这样一个方法:Formatter formatter = new Formatter() {

@Override

public String format(int value) {

String tmpStr = String.valueOf(value);

if (value 

tmpStr = "0" + tmpStr;

}

return tmpStr;

}

};

numberPicker.setFormatter(formatter);

这是设置最小值numberPicker.setMinValue(0);

numberPicker.setMaxValue(23);

numberPicker.setValue(17);

这是监听滑动,基本用不到numberPicker.setOnValueChangedListener(new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker picker, int oldVal,

int newVal) {

Log.e("", "oldVal:" + oldVal + "newVal:" + newVal);

}

});

获取当前值int value = numberPicker.getValue();

然后网上找了点教程,通过新建类来继承NumberPicker,但只能修改字体颜色和大小,没法改变中间那两条线的颜色,尺寸.

就是重写所有addView方法,然后在addView()中添加自定义的方法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)

((EditText) view).setTextSize(12);

((EditText) view).setTextColor(Color.RED);

}

}

因为这样还是没法随心所欲,所以只好网上找了些例子,都是通过copy源代码的NumberPicker类的代码来自定义,直接继承的LinearLayout.当然少不了declare-styleable  style之类的,比较麻烦.

然后还有一个比较好的,完全可以改一下当时间 日期 选择器

http://download.csdn.net/detail/the_path/7713987

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值