Android日历完整实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实用第一智慧密集

2011. 05

实现基于Android 的日历系统

摘要: Android 作为目前较为流行的智能手机操作系统已成为大多数人的首选。在美国乃至世界

的很多地方的出货量已经超越Iphone,成为世界上最大智能手机操作系统。因此,世界各地的程

序员都跃跃欲试地想学习Android 的开发,并希望从中捞得属于自己的第一桶金。在此给出一个

基于Android 的日历系统的完整实现过程。

关键词: Android;日历;绘画;农历;记录;提醒

1 引言

要实现的日历除了常规的日历功能外,还可以显示与当前

日期相关的信息,如当前日期的农历日期、天干地支、节日等

信息。下面先看看日历的绚丽界面,如图1、图2 所示。

主要功能

2 绘画基础

由于实现的日历系统要涉及到大量的Android 绘图技术,

因此,要简单介绍Android 的绘图技术。

绘制图形通常在Android.view.View 或其子类的onDraw 方

法中进行。该方法的定义如下:

protected void onDraw(Canvas canvas);

其中Canvas 对象提供了大量用于绘图的方法,这些方法

主要包括绘制像素点、直线、圆形、弧、文本,这些都是组成

复杂图形的基本元素。如果要画更复杂的图形,可以采用组合

这些图形基本元素的方式来完成。例如,可以采用画3 条直线

的方式来画三角形。下面来看一下绘制图形基本元素的方法。

2.1 绘制像素点

public native void drawPoint(float x, float y, Paint paint);

// 画一个像素点

public native void drawPoints(float[] pts, int offset, int count, Paint paint); // 画多个像素点

public void drawPoints(float[] pts, Paint paint);

// 画多个像素点

参数的含义如下:

(1) x:像素点的横坐标。

(2) y:像素点的纵坐标。

(3) paint:描述像素点属性的Paint 对象。可设置像素点

的大小、颜色等属性。绘制其他图形元素的Paint 对象与绘制

像素点的Paint 对象的含义相同。在绘制具体的图形元素时可

根据实际的情况设置Paint 对象。

(4) pts: drawPoints 方法可一次性画多个像素点。pts 参数

表示多个像素点的坐标。该数组元素必须是偶数个,两个一组

为一个像素点的坐标。

(5) offset: drawPoints 方法可以取pts 数组中的一部分连

续元素作为像素点的坐标,因此,需要通过offset 参数来指定

取得数组中连续元素的第一个元素的位置,也就是元素偏移

量,从0 开始。例如,要从第3 个元素开始取数组元素,那么

offset 参数值就是2。

(6) count:要获得的数组元素个数, count 必须为偶数

(两个数组元素为一个像素点的坐标)。

要注意的是, offset 可以从任意一个元素开始取值,例如,

offset 可以为1,然后count 为4。

2.2 绘制直线

public void drawL ine (float startX, float startY, float stopX, float stopY,Paint paint);// 画一条直线

public native void drawLines(float[] pts, int offset, int count, Paint paint); // 画多条直线

public void drawLines(float[] pts, Paint paint);

// 画多条直线

参数的含义如下:

(1) startX:直线开始端点的横坐标。

(2) startY:直线开始端点的纵坐标。

(3) stopX:直线结束端点的横坐标。

(4) stopY:直线结束端点的纵坐标。

(5) pts:绘制多条直线时的端点坐标集合。4 个数组元素

(两个为开始端点的坐标,两个为结束端点的坐标)为1 组,

表示一条直线。例如,画两条直线, pts 数组就应该有8 个元

素。前4 个数组元素为第1 条直线两个端点的坐标,后4 个数

组元素为第2 条直线的两个端点的坐标。

(6) offset: pts 数组中元素的偏移量。

(7) count:取得pts 数组中元素的个数。该参数值需为4

的整数倍。

2.3 绘制圆形

public void drawCircle (float cx, float cy, float radius, Paint paint);

参数的含义如下:

(1) cx:圆心的横坐标。

(2) cy:圆心的纵坐标。

(3) radius:圆的半径。

2.4 绘制弧

public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint);

参数的含义如下:

(1) oval:弧的外切矩形的坐标。需要设置该矩形的左上

相关文档
最新文档