[TOC](Android 日历自定义)


前言

公司最近有这么一个需求,如下图

分析

1.日历需要能自定义文字

2.根据日期优先级,文字的展示为优先级高的

实现

选择库 NCalendar

由于开发周期短,决定选择一个较为全面的日历库上自定义需求。

Github地址
https://github.com/yannecer/NCalendar

Calendar Apdater

/*** 获取日历item的View*/
public abstract View getCalendarItemView(Context context);/*** 绑定今天的数据** @param calendarItemView     getCalendarItemView()方法获取的 View* @param localDate            今天的日期* @param totalCheckedDateList 所有选中日期的集合,*                             单选模式中,集合中最多只有一个元素,*                             多选模式中,可以有多个元素*/
public abstract void onBindToadyView(View calendarItemView, LocalDate localDate, List<LocalDate> totalCheckedDateList);/*** 绑定当前月或周的日期** @param calendarItemView     getCalendarItemView()方法获取的 View* @param localDate            月日历-> 当前页面月份中的每个日期(内部是循环处理)*                             周日历-> 当前页面一周中的每个日期(内部是循环处理)* @param totalCheckedDateList 所有选中日期的集合,*                             单选模式中,集合中最多只有一个元素,*                             多选模式中,可以有多个元素*/
public abstract void onBindCurrentMonthOrWeekView(View calendarItemView, LocalDate localDate, List<LocalDate> totalCheckedDateList);
/*** 绑定上下月的数据 周日历可不用实现** @param calendarItemView     getCalendarItemView()方法获取的 View* @param localDate            月日历-> 当前页面上一月、下一月中的每个日期(内部是循环处理)*                             周日里-> 周日历无需实现此方法* @param totalCheckedDateList 所有选中日期的集合,*                             单选模式中,集合中最多只有一个元素,*                             多选模式中,可以有多个元素*/
public abstract void onBindLastOrNextMonthView(View calendarItemView, LocalDate localDate, List<LocalDate> totalCheckedDateList);

这三个方法相当于
1.日历基本视图

2.当日视图

3.当月视图

4.上下月视图

逻辑实现

        if (localDate.getDayOfWeek() == 6 || localDate.getDayOfWeek() == 7){tv_double.setText("1.1");}if (holidays.contains(localDate)){tv_double.setText("1.3");}if (specaldays.contains(localDate)){tv_double.setText("1.4");}

效果

NCalendar 5.0.1 git上只有Android x 版本,修改Support版本
NCalendar Support版本下载地址

Android 日历自定义文本相关推荐

  1. android 自定义文字位置,Android设置显示文本

    如果不设置singleLine或者设置为false,文本将自动换行, android:text设置显示文本. android:textAppearance设置文字外观.如 "android: ...

  2. Android日历视图

    In this tutorial, we'll be discussing the Calendar Widget using the CalendarView class in our Androi ...

  3. Android 之自定义组件

    1.如何在一个按钮上放上一张图片? 把按钮和图片套在一个FrameLayout中 <!-- 必须将button和ImageView分别嵌套在两个LinearLayout中才能 实现将图片放在按钮 ...

  4. android怎么设置适配器,Android之自定义实现BaseAdapter(通用适配器三)

    在上一篇中,我们说过,在setData中如果有很多控件的话,我们还是要在该方法中写入很多代码,为了降低开发的方便性,本次就在此基础上再一次优化.实现原理是这样的,每次在setData中都要查找控件,然 ...

  5. android自定义省略号,Android开发自定义TextView省略号样式的方法

    本文实例讲述了Android开发自定义TextView省略号样式的方法.分享给大家供大家参考,具体如下: 在布局xml中设置textView的字段 android:maxLines="2&q ...

  6. android 日历_适用于Android的十大最佳日历应用

    android 日历 Looking for the best calendar apps for Android? You're in the right place! Let's get righ ...

  7. android 日历翻页动画,Android开源库合集:轻松实现Android动态,炫目:日历效果...

    前言: 了解过那种动态,炫目的日历效果吗?你知道是怎么 操作的嘛?是否想过,用UI就可以实现,对,也许你说的对,不过UI只是都是动态效果的一部分.那么今天用Annroid开源库,来告诉你android ...

  8. Android中获取文本宽度和高度

    本文罗列Android中字体宽度和高度的相关概念,及测量方法 . 原文请参考Android_FontMetrics.Android字符串进阶之三:字体属性及测量(FontMetrics). Andro ...

  9. android开发文字滚动代码,android实现滚动文本效果

    本文实例为大家分享了android实现滚动文本效果的具体代码,供大家参考,具体内容如下 效果图 实现方法 直接上代码 首先是一个自定义layout,继承自FrameLayout public clas ...

  10. android自定义起止时间的时间刻度尺,Android中自定义RecyclerView如何实现不固定刻度的刻度尺...

    Android中自定义RecyclerView如何实现不固定刻度的刻度尺 发布时间:2020-07-17 16:50:28 来源:亿速云 阅读:116 作者:小猪 这篇文章主要讲解了Android中自 ...

最新文章

  1. dedecms自定义表单如何添加发布时间功能
  2. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上
  3. 为什么单例模式是邪恶的(译)
  4. 11-[函数进阶]-闭包
  5. 如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作
  6. vlan之间Hybrid端口配置
  7. mysql密码字段_如何在mysql中创建带有密码字段的表?
  8. FPGA信号处理系列文章——相关与卷积
  9. MQL5:创建自己的指标
  10. 【编程开发】之国家代号与电话区号
  11. 微信小程序别踩白方块(有效果图)
  12. 超过100项改进 100tv聚好看全新发布
  13. RStudio安装后界面一片空白
  14. MindSpore论坛十月有奖活动
  15. 一文读懂拜占庭将军问题
  16. RISC-V、ARM和X86架构
  17. 2017年成为全栈开发工程师的权威指南
  18. 启动Tomcat报错- jar not loaded. Offending class: javax/servlet/Servlet.class
  19. android仿微信下拉二楼_Android仿微信下拉列表实现
  20. 鲁棒的激光雷达与相机标定方法

热门文章

  1. 计算机时区找不到北京,电脑时区里为何没有标准北京时间
  2. 几种常见嵌入式实时操作系统简介
  3. 泰晤士高等教育世界大学排名(400强)—前50位
  4. 2021莆田六中一高考成绩查询,莆田六中2018年高一新生录取名单完整版
  5. 第六章 选择语句、循环语句、Debug
  6. Office小技巧|Excel表格输入身份证数字就变了乱码怎么办?
  7. portraiture2022插件安装使用教程
  8. 斐波那契数列(Fibonacci)
  9. 示波器探头对测量可能引起的10种影响
  10. 校验EXE文件防止软件被破解