全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何制作网站标识牌,动态网站如何制作(教程)?  如何通过虚拟主机快速完成网站搭建?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  家庭服务器如何搭建个人网站?  电商平台网站制作流程,电商网站如何制作?  ,网站推广常用方法?  音响网站制作视频教程,隆霸音响官方网站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何使用Golang安装API文档生成工具_快速生成接口文档  宝塔Windows建站如何避免显示默认IIS页面?  测试制作网站有哪些,测试性取向的权威测试或者网站?  郑州企业网站制作公司,郑州招聘网站有哪些?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  实例解析Array和String方法  如何获取开源自助建站系统免费下载链接?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  平台云上自助建站如何快速打造专业网站?  建站之星如何通过成品分离优化网站效率?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  如何在Golang中使用replace替换模块_指定本地或远程路径  如何用花生壳三步快速搭建专属网站?  学校建站服务器如何选型才能满足性能需求?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过主机屋免费建站教程十分钟搭建网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站主机是否属于云主机类型?  建站之星如何保障用户数据免受黑客入侵?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何用低价快速搭建高质量网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  外贸公司网站制作哪家好,maersk船公司官网?  Python文件管理规范_工程实践说明【指导】  如何在IIS中新建站点并配置端口与IP地址?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在云主机上快速搭建网站?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何快速选择适合个人网站的云服务器配置?  浅谈Javascript中的Label语句  东莞专业制作网站的公司,东莞大学生网的网址是什么?  北京网站制作的公司有哪些,北京白云观官方网站?  建站主机默认首页配置指南:核心功能与访问路径优化  成都网站制作公司哪家好,四川省职工服务网是做什么用?  b2c电商网站制作流程,b2c水平综合的电商平台? 

您的项目需求

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