Android日历完整实现

更新时间:2023-07-06 10:22:23 阅读: 评论:0

实用第一智慧密集
2011. 05
实现基于Android 的日历系统
摘要 Android 作为目前较为流行的智能手机操作系统已成为大多数人的首选在美国乃至世界
的很多地方的出货量已经超越Iphone 成为世界上最大智能手机操作系统因此 世界各地的程yomi
序员都跃跃欲试地想学习Android 的开发 并希望从中捞得属于自己的第一桶金在此给出一个
基于Android 的日历系统的完整实现过程
关键词 Android 日历 绘画 农历 记录 提醒
1 引言
要实现的日历除了常规的日历功能外 还可以显示与当前
日期相关的信息 如当前日期的农历日期天干地支节日等
信息下面先看看日历的绚丽界面 如图12 所示
主要功能
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 offt, 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 offt drawPoints 方法可以取pts 数组中的一部分连
续元素作为像素点的坐标 因此 需要通过offt 参数来指定
取得数组中连续元素的第一个元素的位置 也就是元素偏移
0 开始例如 要从第3 个元素开始取数组元素 那么
offt 参数值就是2
6 count 要获得的数组元素个数negatives count 必须为偶数
两个数组元素为一个像素点的坐标)。
要注意的是 offt 可以从任意一个元素开始取值 例如
offt 可以为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 offt, int count,
Paint paint); // 画多条直线
public void drawLines(float[] pts, Paint paint);
// 画多条直线
参数的含义如下
1 startX 直线开始端点的横坐标
2 startY 直线开始端点的纵坐标
3 stopX 直线结束端点的横坐标
4 stopY 直线结束端点的纵坐标
5 pts 绘制多条直线时的端点坐标集合4 个数组元素
两个为开始端点的坐标 两个为结束端点的坐标 1
表示一条直线例如few怎么读 画两条直线 pts 数组就应该有8 个元
4 个数组元素为第1 条直线两个端点的坐标 4 个数
voa听力下载
组元素为第2 条直线的两个端点的坐标
6 offt pts 数组中元素的偏移量
7 count 取得pts 数组中元素的个数该参数值需为4
的整数倍
2.3 绘制圆形
public void drawCircle (float cx, float cy, float radius, Paint
paint);
参数的含义如下
1 cx 圆心的横坐标
2 cy 圆心的纵坐标
3 radiusutilizing 圆的半径
2.4 绘制弧
public void drawArc (RectF oval, float startAngle, float
sweepAngle, boolean uCenter, Paint paint);
参数的含义如下
1 oval 弧的外切矩形的坐标需要设置该矩形的左上
角和右下角的坐标 也就是oval.leftpoval.right
oval.bottom
2 startAngle 弧的起始角度
3 sweepAngle 弧的结束角度如果sweepAngle - startAngle
的值大于等于360 drawArc 画的就是一个圆或椭圆
oval 指定的坐标画出来的是长方形 drawArc 画的就是椭圆)。
4 uCenter 如果该参数值为true 在画弧时弧的两个端
点会连接圆心如果该参数值为fal 则只会画弧效果如图3
所示前两个弧未设置填充状态 后两个弧设置了填充状态
2.5 绘制文本
2016大学排名
// 绘制text 指定的文本
public native void drawText (String text, float x, float y, Paint
paint);
// 绘制text 指定的文本文本中的每一个字符的起始坐标由
//pos 数组中的值决定
public void drawPosText(String text, float[] pos, Paint paint);
// 绘制text 指定的文本text 中的每一个字符的起始坐标由
//pos 数组中的值决定并且可以选择text 中的某一段
// 连续的字符绘制
public void drawPosText(char[] text, int index, int count, float
[] pos,Paint paint);
参数的含义如下
(1) text drawText 方法中的text 参数表示要绘制的文本
drawPostText 方法中的text 虽然也表示要绘制的文本 但每一
个字符的坐标需要单独指定如果未指定某个字符的坐标
统会抛出异常大学英语四级听力下载
(2) x 绘制文本的起始点的横坐标
(3) y 绘制文本的起始点的纵坐标
(4) index 选定的字符集合在text 数组中的索引
(5) count 选定的字符集中字符个数
3 reply过去式绘制日历的框架
从图1 可以看出 日历的上部是3 行文字 显示了当前日
期的相关信息下面来看看如何布局显示这些文字的组件
在日历主界面的上半部需要放置4 个组件 1 ImageView
组件和3 TextView 组件其中ImageView 组件用于
显示左上角的图像3 TextView 组件用于显示当前日期的信
由于目前还没有当前日期的信息因此 3 TextView
组件暂时设置了固定的信息
下面开始在l 文件中设置这4 个组件在修改
l 文件的内容之前 先复制一个calendar.png 文件
为日历的logo 修改l 文件中的应用程序图
)。建立一个Calendar 工程 并编写l 文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLay out xmlns:android = "schemas.android.
com/apk/res/android"
android:orientation = "vertical" android:layout_width = "
fill_parent"
android:layout_height="fill_parent" android:background="
特朗普演讲@color/calendar_background" >< ! -- android:background = "
@drawable/background" -->
<RelativeLayout android:id = "@ +id/calHeader" android:
layout_width="fill_parent"
android:layout_height="70dp">
<ImageView android:id = "@ +id/ivLogo" android:
src="@drawable/calendar_bak"
android:layout_width="@dimen/logo_size" android:
layout_height="@dimen/logo_size"
android:layout_margin="@dimen/margin" />
<LinearLayout android:layout_width="fill_parent"
android:layout_height = "wrap_content" android:

本文发布于:2023-07-06 10:22:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1081575.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:元素   坐标   绘制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图