android 开发 时间选择器TimePicker的使用
android系统自带时间控件:

DatePicker 日期显示控件 
DatePickerDialog 日期对话框控件
TimePicker 时间显示控件

TimePickerDialog 时间对话框控件

首先是布局的创建:

<TimePickerandroid:id="@+id/timepicker"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="#ffffff"/>

TimePicker 本身自带两种风格,都可以在xml中设置,一种是

android:timePickerMode="clock"

另一种是:

android:timePickerMode="spinner"

TimePicker的显示规模大小设置

android:scaleX="2"
android:scaleY="2"

效果:

之后就是一些TimePicker的使用方法了:
mTimepicker = (TimePicker) inflate.findViewById(R.id.timepicker);mTimepicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);  //设置点击事件不弹键盘
mTimepicker.setIs24HourView(true);   //设置时间显示为24小时mTimepicker.setHour(8);  //设置当前小时
mTimepicker.setMinute(10); //设置当前分(0-59)
mTimepicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {  //获取当前选择的时间@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {}
});
接下来就是一些需要用到反射的方法了,比如更改分割线的样式,设置起始截止时间等:
首先我们要通过反射获取TimePicker源码里hour和minute的id:
Resources systemResources = Resources.getSystem();
int hourNumberPickerId = systemResources.getIdentifier("hour", "id", "android");
int minuteNumberPickerId = systemResources.getIdentifier("minute", "id", "android");
然后用我们定义的TimePicker来获取这个id并转换成hour和minute对应的NumberPicker: 
NumberPicker hourNumberPicker = (NumberPicker) mTimepicker.findViewById(hourNumberPickerId);
NumberPicker minuteNumberPicker = (NumberPicker) mTimepicker.findViewById(minuteNumberPickerId);
通过获取到的hourNumberPicker和minuteNumberPicker我们可以先进行TimePicker的时间限制:
hourNumberPicker.setMinValue(8);   //设置最小hour
hourNumberPicker.setMaxValue(12);  //设置最大hour
minuteNumberPicker .setMinValue(0);  //设置最小minute
minuteNumberPicker .setMaxValue(30);  //设置最大minute

修改滚动条背景颜色:

hourNumberPicker.setBackgroundColor(getResources().getColor(R.color.colorBlue));// 修改背景颜色

TimePicker分割线的颜色和高度:
private void setNumberPickerDivider(NumberPicker numberPicker) {NumberPicker picker = numberPicker;Field[] pickerFields = NumberPicker.class.getDeclaredFields();for (Field pf : pickerFields) {if (pf.getName().equals("mSelectionDivider")) {  //设置颜色pf.setAccessible(true);ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.colortime)); //选择自己喜欢的颜色try {pf.set(numberPicker, colorDrawable);} catch (IllegalAccessException e) {e.printStackTrace();}}if (pf.getName().equals("mSelectionDividerHeight")) {   //设置高度pf.setAccessible(true);try {int result = 3;  //要设置的高度pf.set(picker, result);} catch (Exception e) {e.printStackTrace();}break;}picker.invalidate();}
}

posted on 2018-06-01 15:33 观心静 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/guanxinjing/p/9708610.html

android 开发 时间选择器TimePicker的使用相关推荐

  1. android简单时间选择器TiemPicker

    1.在布局文件中添加TimePicker: <TimePickerandroid:layout_width="wrap_content"android:layout_heig ...

  2. 时间选择器timePicker实现根据当前选择日期(当天/非当天)禁用时间段

    文章目录 需求描述 解决 日期选择器datePicker实现只能选择当天及之后的日期 时间选择器timePicker实现根据datePicker选择的日期动态变化开始时间 小结 需求描述   最近在做 ...

  3. 时间选择器(timepicker)

    可以使用Slider拖动选择,也可以使用timespinner改变时间,或者手工填写. 自动判断位置 效果: 源码: <!DOCTYPE html> <html xmlns=&quo ...

  4. Android实现时间选择器

    1:build.gradle中加入依赖 implementation 'com.contrarywind:Android-PickerView:3.2.6' 2:activity_main中选择日期后 ...

  5. android开发地址选择器,Android地址选择器 类似于京东的地址选择

    简介 最近东西写的挺多的,这不又要弄一个类似于京东的地址选择器,然后刚开始我是不愿意自己去写的,这东西真的是浪费时间.但是下班后回到家找了一圈没找到一个合适的,好吧,那我就自己来封装一个呗,反正生命在 ...

  6. Android 日期时间选择器

    文章参考: https://blog.csdn.net/qq_33756493/article/details/78120743 参考以上连接文章,具体实现如下: 布局文件代码: <?xml v ...

  7. android开发 时间倒计时的启动页,App启动页倒计时功能

    示例代码采用 RxJava + RxLifecycle + Data-Binding 模式编写 示例图: 话不多说,实现方式如下: 1.导入依赖库 ① RxJava: Reactive Extensi ...

  8. android开发自定义选择器,创建自定义android选择器

    我想下面的框架代码有助于为您的应用程序提供所需的一些灵活性. /* Simple Dialog Dialog dialog = new Dialog(this); dialog.setTitle(&q ...

  9. android timepicker 不可编辑,iView -- TimePicker 自定义修改时间选择器选择时间面板样式...

    期望的最终效果: 为什么要修改期望效果? 项目需要只选择小时,分钟跟秒的不需要,而官方并没有直接相关的小时组件或者是设置显示成小时或分钟或秒的时间选择器,因为自己直接修改样式. 原生js 代码,如下: ...

最新文章

  1. 服务端如何识别是selenium在访问以及解决方案参考二
  2. 刷了一个月算法,终于拿到了double的offer
  3. eval语法报错 ie10_js eval 语法错误 急急急
  4. html创建scrpts方法,HTML5 Canvas口香糖/粘稠球/软面团
  5. 史上最全的SpringBatch学习教程
  6. VTK:可视化之VectorField
  7. spring BeanFactory概述
  8. java 如何导出json文件_java导出json格式文件的示例代码
  9. poi excel导入 判断合并单元格_Excel合并单元格,你需要知道的那些事
  10. AcWing1090.绿色通道(单调队列DP)
  11. 为什么 MapReduce 再次流行起来了?
  12. CentOS 5 常见的configure error的解决方法
  13. java浮点数的精确计算_Java 浮点数计算精度丢失问题?
  14. 路侧智慧泊车解决方案
  15. 怎样搬运视频不侵权,王者剪辑的指纹检测如何检测原创度
  16. 注册99美元苹果开发帐号
  17. jena使用 java_【jena】 jena基本使用
  18. Kaggle文本可读性识别大赛银牌方案复盘
  19. android视频播放器 http 206,一个强悍而优美的Android视频播放器
  20. js日历(包含农历节假日)

热门文章

  1. dos下实现延迟功能
  2. Python 中名词
  3. 和6岁孩子的函数式编程对话
  4. 蚂蚁金服面试经历!临场发挥!
  5. GitHub上读北大:覆盖AI高数等130多门课,讲义考题答案全都有,标星已3k+
  6. 什么是线程安全,你真的了解吗?
  7. 面试java后端开发之后的一些感受
  8. android编程获取网络和wifi状态及调用网络设置界面,Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 - Android平台开发技术 - 博客园...
  9. h5怎么加入php代码,HTML5主要新增标签的使用代码分享
  10. 数据中心可以从云计算学习可持续性运营