根据需求定制日历-二
根据需求定制日历-二
使用引导
项目地址
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);}}
根据需求定制日历-二相关推荐
- 自定义日历控件,可以根据需求定制属于自己的日历
自定义日历控件,可以根据需求定制属于自己的日历 效果图 最近笔者的朋友需要写一个关于考勤的日历,效果如下,但在网上找了半天都找不到合适的,于是乎就向笔者求助,笔者本来觉得在晚上随便找个日历demo,然 ...
- 水溶性Ag2S量子点表面修饰PEG-SH,发射1100-1500之间可根据需求定制-齐岳生物
水溶性Ag2S量子点表面修饰PEG-SH,发射1100-1500之间可根据需求定制-齐岳生物 近红外荧光量子点在活体水平的成像研究中具有更大的应用优势,对于癌症及抗癌药物研究.药效评估及指导外科手术等 ...
- iOS开发-定制多样式二维码
iOS开发-定制多样式二维码 二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...
- 融云即时通讯SDK集成 – 定制UI(二) ——添加自定义表情库
融云即时通讯SDK集成 – 定制UI(二) --添加自定义表情库 背景: 最近公司新上的app要加上即时通讯的功能, 自己快速实现一个当然是不可能的了(项目deadline也顶不住哇).就从各家成熟的 ...
- android精品源码,下拉刷新效果高德地图五子棋游戏定制日历全民TV源码
1.Android图片涂鸦 2.在AchartEngine的基础上进行功能扩展的图表,新增非常多的... 3.上拉刷新.下拉加载 4.实现多种下拉刷新效果.上拉加载更多以及配置自定义头... 5.高德 ...
- testlink二次开发php,testlink根据需求定制
定制需求为: 1.在测试用例中添加自定义字段 2.测试用例模板自定义css样式 3.在测试执行中增加测试结果字段 解决方式 1.测试用例自定义字段添加. 在project页面中选定custom fie ...
- 利用jQuery定制日历(含时分秒时区功能)
出于需要,最近想找一个含时分功能的日历,网上的确有些网友自己用js写的,但是下载下来问题诸多,加之代码说明混乱,所以改起来很麻烦.后来发现有国外网友利用Jquery定制了比较丰富的日历样式,最重要的是 ...
- Android定制日历,支持周月切换,日期标记,农历显示,节假日
公司项目需要一个功能全面的日历,然后就在网上找demo,然后根据demo自己深度定制了一个日历,基本满足了需求,现在把日历核心代码共享给大家.源码下载地址http://download.csdn.ne ...
- Android自定义View精品(CustomCalendar-定制日历控件)
版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 目录: 文章目录 1.分析 2.自定义属性 3.onMeasure() 4.onDraw() ①.绘制月份 ...
最新文章
- Python算术运算符及用法详解
- Dropbox用户数增速恢复:突破5亿 9个月增加1亿
- hdu4503 概率
- Scala学习第五天数组
- 【软件工程】集成开发
- Solr分析器IK-analyzer配置及错误java.lang.AbstractMethodError解决
- 分享个markdownpad2的授权key
- 2021年高压电工考试题及高压电工模拟考试
- 利用python爬虫(案例1)--某电影网站的小电影们
- 扫描版pdf重排 linux,【Kindle Pdf Viewer中文安装教程】支持扫描版PDF重排及其他主流文件格式...
- pdf文件预览 浏览器窗口名修改
- 电商平台减少服务器性能,电商平台服务器数据安全灾备方案规划.doc
- 桌面右击没有WPS新建WORD文档
- ab压力测试是使用以及介绍
- 人脸识别开源库face_recognition
- 计算机网络 研究生复试考前最终版
- centos8 修改root密码
- 【人工智能实验】运用贝叶斯决策理论实现手写数字识别
- 虚拟语气用法总结及真题解析
- dreamware简单HTML网页,Dreamweaver cs6怎么设计一款简单的网页?