根据需求定制日历-二

使用引导

项目地址

demo下载地址

把相关类拷贝到自己项目目录里

在XML 布局文件中引入相关 CalendarView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="300dp"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.calendar.MainActivity"><com.example.calendar.view.CalendarViewandroid:id="@+id/calendar"android:layout_width="300dp"android:layout_height="300dp" />
</LinearLayout>

至此,该日历就可以使用了

自定义日历界面

1、找到日历控件

 import com.example.calendar.view.CalendarView;/**日历控件*/private CalendarView calendar;calendar = (CalendarView) findViewById(R.id.calendar);

2 、设置画界面回调

calendar.setOnDrawDays(new CalendarView.OnDrawDays() {@Overridepublic boolean drawDay(Day day, Canvas canvas, Context context, Paint paint) {return false;}@Overridepublic void drawDayAbove(Day day, Canvas canvas, Context context, Paint paint) {}});

给星期背景加五角星

1、根据day.dateText 进行判断,-1为星期 ,其他的则返回当天的年-月-日

2、public boolean drawDay(Day day, Canvas canvas, Context context, Paint paint) 图层在原画下方

            @Overridepublic boolean drawDay(Day day, Canvas canvas, Context context, Paint paint) {//               给加上五角星if (day.dateText.equals("-1")){canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.mipmap.wujiaoxing),20,20,paint);}return false;}

给日期结尾为01、04、08背景加上西瓜

                @Overridepublic boolean drawDay(Day day, Canvas canvas, Context context, Paint paint) {//               给加上五角星if (day.dateText.equals("-1")) {canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.wujiaoxing), 20, 20, paint);} else if (day.dateText.endsWith("1") || day.dateText.endsWith("4") || day.dateText.endsWith("8")) {//加上西瓜canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.xigua), 20, 20, paint);}return false;}

画出每天方框的大小,并使原来的消失重新画

1、day.width 代表日期方框的宽 day.height 表示方框的高

2、public boolean drawDay() 返回为 true 时,则表示原画消失

      @Overridepublic boolean drawDay(Day day, Canvas canvas, Context context, Paint paint) {paint.setStrokeWidth(1);paint.setStyle(Paint.Style.STROKE);canvas.drawRect(0,0,day.width,day.height,paint);
//               给加上五角星if (day.dateText.equals("-1")) {canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.wujiaoxing), 20, 20, paint);} else if (day.dateText.endsWith("1") || day.dateText.endsWith("4") || day.dateText.endsWith("8")) {//加上西瓜canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.xigua), 20, 20, paint);}return true;}

在原画上方画鸭子

public void drawDayAbove(Day day, Canvas canvas, Context context, Paint paint) 图层在原画上方

            public void drawDayAbove(Day day, Canvas canvas, Context context, Paint paint) {if (day.dateText.endsWith("1") || day.dateText.endsWith("4") || day.dateText.endsWith("8")) {//加上西瓜canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.yazi), 20, 20, paint);}}

根据需求定制日历-二相关推荐

  1. 自定义日历控件,可以根据需求定制属于自己的日历

    自定义日历控件,可以根据需求定制属于自己的日历 效果图 最近笔者的朋友需要写一个关于考勤的日历,效果如下,但在网上找了半天都找不到合适的,于是乎就向笔者求助,笔者本来觉得在晚上随便找个日历demo,然 ...

  2. 水溶性Ag2S量子点表面修饰PEG-SH,发射1100-1500之间可根据需求定制-齐岳生物

    水溶性Ag2S量子点表面修饰PEG-SH,发射1100-1500之间可根据需求定制-齐岳生物 近红外荧光量子点在活体水平的成像研究中具有更大的应用优势,对于癌症及抗癌药物研究.药效评估及指导外科手术等 ...

  3. iOS开发-定制多样式二维码

    iOS开发-定制多样式二维码   二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...

  4. 融云即时通讯SDK集成 – 定制UI(二) ——添加自定义表情库

    融云即时通讯SDK集成 – 定制UI(二) --添加自定义表情库 背景: 最近公司新上的app要加上即时通讯的功能, 自己快速实现一个当然是不可能的了(项目deadline也顶不住哇).就从各家成熟的 ...

  5. android精品源码,下拉刷新效果高德地图五子棋游戏定制日历全民TV源码

    1.Android图片涂鸦 2.在AchartEngine的基础上进行功能扩展的图表,新增非常多的... 3.上拉刷新.下拉加载 4.实现多种下拉刷新效果.上拉加载更多以及配置自定义头... 5.高德 ...

  6. testlink二次开发php,testlink根据需求定制

    定制需求为: 1.在测试用例中添加自定义字段 2.测试用例模板自定义css样式 3.在测试执行中增加测试结果字段 解决方式 1.测试用例自定义字段添加. 在project页面中选定custom fie ...

  7. 利用jQuery定制日历(含时分秒时区功能)

    出于需要,最近想找一个含时分功能的日历,网上的确有些网友自己用js写的,但是下载下来问题诸多,加之代码说明混乱,所以改起来很麻烦.后来发现有国外网友利用Jquery定制了比较丰富的日历样式,最重要的是 ...

  8. Android定制日历,支持周月切换,日期标记,农历显示,节假日

    公司项目需要一个功能全面的日历,然后就在网上找demo,然后根据demo自己深度定制了一个日历,基本满足了需求,现在把日历核心代码共享给大家.源码下载地址http://download.csdn.ne ...

  9. Android自定义View精品(CustomCalendar-定制日历控件)

    版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 目录: 文章目录 1.分析 2.自定义属性 3.onMeasure() 4.onDraw() ①.绘制月份 ...

最新文章

  1. Python算术运算符及用法详解
  2. Dropbox用户数增速恢复:突破5亿 9个月增加1亿
  3. hdu4503 概率
  4. Scala学习第五天数组
  5. 【软件工程】集成开发
  6. Solr分析器IK-analyzer配置及错误java.lang.AbstractMethodError解决
  7. 分享个markdownpad2的授权key
  8. 2021年高压电工考试题及高压电工模拟考试
  9. 利用python爬虫(案例1)--某电影网站的小电影们
  10. 扫描版pdf重排 linux,【Kindle Pdf Viewer中文安装教程】支持扫描版PDF重排及其他主流文件格式...
  11. pdf文件预览 浏览器窗口名修改
  12. 电商平台减少服务器性能,电商平台服务器数据安全灾备方案规划.doc
  13. 桌面右击没有WPS新建WORD文档
  14. ab压力测试是使用以及介绍
  15. 人脸识别开源库face_recognition
  16. 计算机网络 研究生复试考前最终版
  17. centos8 修改root密码
  18. 【人工智能实验】运用贝叶斯决策理论实现手写数字识别
  19. 虚拟语气用法总结及真题解析
  20. dreamware简单HTML网页,Dreamweaver cs6怎么设计一款简单的网页?

热门文章

  1. 推荐一款Node.js编写的HTTP代理服务器Zan Proxy
  2. Native.js 读写NFC数据
  3. Keil5: 如何开发51单片机
  4. You can't specify target table ''
  5. 最近看的一本书和两部电影
  6. js替换emjoi (不是很完整)
  7. 小彬学vue系列专栏】 004 | 构建工具一如你初妆
  8. 【OS笔记 14】进程同步篇——基本概念
  9. 怎么生成二维码彩色版
  10. 记录在IDEA上使用连接池C3P0操作MySQL的一个问题