1.Android设置TimePicker样式和字体颜色

Android默认的TimePicker有两种,6.0为Dialog样式,6.0之前为Spinner样式

设置TimePicker选择器风格

一种是

android:timePickerMode="clock"

image.png

另一种是

android:timePickerMode="spinner"

[图片上传中...(image.png-7ac7c0-1593766325814-0)]

image.png

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() { //获取当前选择的时间

@Override

public 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));// 修改背景颜色

image.png

隐藏冒号

用最暴力的方式隐藏滚动条的冒号,就是直接找ChildAt

ViewGroup view = (ViewGroup) mTimepicker.getChildAt(0);

ViewGroup view2 = (ViewGroup) view.getChildAt(1);

view2.getChildAt(1).setVisibility(View.GONE);

禁止键盘输入

mTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);

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();

}

}

android timepicker分割线颜色,Android TimePicker 的使用相关推荐

  1. android timepicker分割线颜色,Android修改DatePicker字体颜色及分割线颜色详细介绍

    一.DatePicker和TimePicker简介 DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期.如果要捕获用户修改DataPi ...

  2. android按钮背景颜色函数,Android按钮背景颜色(Android button background color)

    Android按钮背景颜色(Android button background color) 我想在我的应用程序中设置按钮的背景颜色,我无法实现我想要的结果... 我试图设置的颜色是holo_gree ...

  3. android timepicker分割线颜色,关于Android的TimePicker和DatePicker一些简单的使用问题

    前几天有个需求需要实现这样的一个时间选择器.我没有用"基友"网站上的WheelView 我直接用的是Android系统提供的组件TimePicker和DatePicker. 需求图 ...

  4. android切换字体颜色,Android开发实现按钮点击切换背景并修改文字颜色的方法

    本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和an ...

  5. android 动态添加颜色,Android绘制一个三角形并且可动态改变颜色

    方法一: 这种方法的三角形角度没法控制,因为其实是矩形旋转. android:fromDegrees="45" android:pivotX="135%" an ...

  6. android开发按钮颜色,Android编程实现简单设置按钮颜色的方法

    本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...

  7. android surfaceview 背景颜色,android – 设置Surface View的背景颜色

    有一个解决方法来做到这一点. >为surfaceview添加父视图组,将背景颜色设置为此视图组而不是surfaceview; android:layout_width="match_p ...

  8. android seekbar 背景颜色,Android中自定义SeekBar如何实现分段显示不同背景颜色

    Android中自定义SeekBar如何实现分段显示不同背景颜色 发布时间:2020-07-17 16:04:27 来源:亿速云 阅读:197 作者:小猪 这篇文章主要讲解了Android中自定义Se ...

  9. Android签名背景颜色,Android UI设计系列之自定义DrawView组件实现数字签名效果(5)...

    最近项目中有个新的需求,用户在完交易需要进行输入支付密码付款的时候,要让用户签下自己的签名,提起到数字签名这个东西,感觉有点高大上,后来想想数字签名的原理也不是太复杂,主要实现原理就是利用了View的 ...

  10. android 设置画布颜色,Android更改画布背景颜色而不会丢失任何图纸

    已经给出了你的问题的答案都指向了正确的方向:你需要在单独的图层中分离背景颜色块和前景图,然后合并它们,然后将它们全部保存在.png文件中.这就是Adobe Photoshop工作流程的设计--如果我们 ...

最新文章

  1. php将url出现 双斜杠,php-URL重写在末尾添加斜杠会破坏我的css链接
  2. python string模块template_Template Strings
  3. python中类似对象吗_确定对象是否为Python中类似字节的对象的正确方法是什么?...
  4. 将 app 打包成 deb 发布安装
  5. modbus3-关于Modicon Modbus Protocol和modscan32
  6. Python之Idel利器jupyter notebook
  7. WordPress插件-Wordfence Security v7.4汉化版-可更新
  8. PB:玉米气生根分泌物支持的高效生物固氮
  9. 服务器移动用户打不开网站图片,为什么有些网站移动网络打不开?
  10. 360怎样修改wifi服务器地址,360安全路由器IP地址设置的具体操作方法介绍
  11. 比赛对阵表(女排世界杯对阵表)
  12. Windows 10 文件名太长 无法删除 复制 重命名
  13. WCF学习之:利用Throttling提高服务器性能
  14. 计算机硬件检测与维修理论试题,计算机硬件检测与维修试题10.doc
  15. Spring Boot 2.5.0
  16. 虚拟机Ubuntu安装vmtools
  17. 5G通信设备安装,不仅是技术活,更是一门艺术活!(干货图文大全)
  18. 改变世界 VS 娱乐自己
  19. 这里有你最想掌握的区块链技术
  20. 2017考研复试:过来人总结经验教训

热门文章

  1. Doris 运维篇:Apache Doris 如何定位处理问题的Tablet
  2. 四足鼎立,北京互联网产业地图
  3. docker和k8s的常见命令
  4. 华为ensp模拟校园网/企业网实例--中型企业无线网络的设计
  5. 用计算机求值根号12345,手算开根号
  6. html5video拼接屏一部分黑屏,拼接屏常见问题与解决方法
  7. led数字字体_led电视质量排行榜
  8. 康佳电视软件测试工程师,康佳电视怎么样之康佳55吋曲面人工智能电视试用测评...
  9. 计算机如何调整对比度,电脑屏幕对比度怎么调
  10. 【自制】3D全息投影