Android(安卓)的NumberPicker相关问题
16lz
2021-01-26
NumberPicker是Android3.0出的,在不同版本中的显示大概是这样的
如果要使得显示的小于10的数字显示两位,需要加上这样一个方法:
Formatter formatter = new Formatter() {@Overridepublic String format(int value) {String tmpStr = String.valueOf(value);if (value < 10) {tmpStr = "0" + tmpStr;}return tmpStr;}};numberPicker.setFormatter(formatter);
这是设置最小值
numberPicker.setMinValue(0);numberPicker.setMaxValue(23);numberPicker.setValue(17);
这是监听滑动,基本用不到
numberPicker.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic 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);}@Overridepublic void addView(View child, int index,android.view.ViewGroup.LayoutParams params) {super.addView(child, index, params);updateView(child);}@Overridepublic 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/xingkongyingke/8010545#comment
然后还有一个比较好的,完全可以改一下当时间 日期 选择器
http://blog.csdn.net/the_path/article/details/38334899 但有点问题要自己改,这是博主传的文件
http://download.csdn.net/detail/the_path/7713987
更多相关文章
- Android中MimeType的用途
- Button控件
- Android(安卓)BLE蓝牙开发中读取数据时设置Notify的方法
- Android客制化adb shell进去后显示shell@xxx的标识
- Android(安卓)P 图形显示系统(十) BufferQueue(一)
- Android(安卓)解析如何获取SDCard 内存
- android popupwindow 模拟新浪、腾讯title弹框效果
- android 新浪微博认证
- Android(安卓)之 Fresco 显示圆形图片 之坑