全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码

Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码

前言: 开发中,为了应用整体美观,需要保持控件的色调和主题色保持一致,

例如:NumberPicker、DatePicker和DatePickerDialog的分割线颜色

一、NumberPicker的分割线颜色

我把对NumberPicker分割线颜色的方法写在一个工具类中,便于全局调用,代码如下:

public static void setNumberPickerDividerColor(Context context, NumberPicker numberPicker) {
    NumberPicker picker = numberPicker;
    Field[] pickerFields = NumberPicker.class.getDeclaredFields();
    for (Field pf : pickerFields) {
      if (pf.getName().equals("mSelectionDivider")) {
        pf.setAccessible(true);
        try {
          //设置分割线的颜色值
          pf.set(picker, new ColorDrawable(context.getResources().getColor(R.color.theme_pink)));
        } catch (IllegalArgumentException e) {
          e.printStackTrace();
        } catch (Resources.NotFoundException e) {
          e.printStackTrace();
        } catch (IllegalAccessException e) {
          e.printStackTrace();
        }
        break;
      }
    }
  }

二、DatePicker的分割线颜色

查看DataPicker的源码可以看到,DatePacker也是NumberPicker实现的,所以主要思想,还是修改NumberPicker分割线的颜色,代码如下:

public static void setDatePickerDividerColor(Context context, DatePicker datePicker){

    // 获取 mSpinners
    LinearLayout llFirst = (LinearLayout) datePicker.getChildAt(0);

    // 获取 NumberPicker
    LinearLayout mSpinners = (LinearLayout) llFirst.getChildAt(0);
    for (int i = 0; i < mSpinners.getChildCount(); i++) {
      NumberPicker picker = (NumberPicker) mSpinners.getChildAt(i);

      Field[] pickerFields = NumberPicker.class.getDeclaredFields();
      for (Field pf : pickerFields) {
        if (pf.getName().equals("mSelectionDivider")) {
          pf.setAccessible(true);
          try {
            pf.set(picker, new ColorDrawable(context.getResources().getColor(R.color.theme_pink)));
          } catch (IllegalArgumentException e) {
            e.printStackTrace();
          } catch (Resources.NotFoundException e) {
            e.printStackTrace();
          } catch (IllegalAccessException e) {
            e.printStackTrace();
          }
          break;
        }
      }
    }
  }

二、DatePickerDialog的分割线颜色

实现思路:拿到Dialog中DatePicker就可以改变分割先的颜色,主要代码如下:

DatePickerDialog datePickerDialog = 
    new DatePickerDialog(mContext, 0, listener, year, month, day);
    datePickerDialog.setTitle("选择年月");
    datePickerDialog.show();
    DatePicker datePicker = datePickerDialog.getDatePickerStart(); //获取DatePicker
    CommonUtil.setDatePickerDividerColor(mContext, datePicker); //设置分割线颜色
    /*修改按钮颜色这个必须在show或者create方法后面*/
    Button commitBtn = datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE); //确认按钮
    commitBtn.setTextColor(Color.parseColor("#e8615e"));

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # 中NumberPicker  # DatePicker与DatePickerDialog中分割颜色  # 分割颜色的修改实例代码  # Android开发之滑动数值选择器NumberPicker用法示例  # Android CalendarView  # DatePicker  # TimePicker  # 以及NumberPicker的使用  # Android数字选择器NumberPicker使用详解  # 分割线  # 希望能  # 可以看到  # 谢谢大家  # 写在  # 就可以  # 把对  # 类中  # 的色  # equals  # Field  # mSelectionDivider  # getName  # pickerFields  # getDeclaredFields  # pf  # setAccessible  # color  # getColor  # catch 


相关文章: 成都网站制作公司哪家好,四川省职工服务网是做什么用?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何快速生成橙子建站落地页链接?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  宝塔面板如何快速创建新站点?  如何在云虚拟主机上快速搭建个人网站?  建站之星后台密码如何安全设置与找回?  网站制作说明怎么写,简述网页设计的流程并说明原因?  再谈Python中的字符串与字符编码(推荐)  如何高效完成独享虚拟主机建站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  如何快速完成中国万网建站详细流程?  如何做网站制作流程,*游戏网站怎么搭建?  5种Android数据存储方式汇总  如何自定义建站之星网站的导航菜单样式?  建站主机选哪种环境更利于SEO优化?  如何彻底卸载建站之星软件?  如何通过万网虚拟主机快速搭建网站?  制作表格网站有哪些,线上表格怎么弄?  Swift中循环语句中的转移语句 break 和 continue  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何在宝塔面板中修改默认建站目录?  如何快速搭建高效香港服务器网站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  大连网站制作公司哪家好一点,大连买房网站哪个好?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  建站之星如何助力企业快速打造五合一网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  行程制作网站有哪些,第三方机票电子行程单怎么开?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  已有域名和空间,如何快速搭建网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  代刷网站制作软件,别人代刷火车票靠谱吗?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何制作一个表白网站视频,关于勇敢表白的小标题?  制作网页的网站有哪些,电脑上怎么做网页?  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何在万网自助建站平台快速创建网站?  为什么Go需要go mod文件_Go go mod文件作用说明  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  南京网站制作费用,南京远驱官方网站?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  制作旅游网站html,怎样注册旅游网站?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何高效利用亚马逊云主机搭建企业网站?  成都网站制作报价公司,成都工业用气开户费用? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。