文章由来:学习一下日历控件的实现,Android3.0以下的版本请查阅其他文章。


本文主要是介绍Android日历视图控件CalendarView相关的内容,然后在后面会给出一个简单的Demo。

CalendarView继承自FrameLayout

其他文章都引用的类似的java代码示例如下:

public class MainActivity extends Activity implements OnClickListener,
OnDateChangeListener { private CalendarView calendarView;
private TextView tvCalendar, tvReminder, tvNote, tvMore;
private ImageView ivNext;
private ImageView ivPrevious; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); // initData();
// initUI();
}
}

这部分代码的工作主要在于加载layout,CalendarView被使用的时候有一些默认值,这里对默认值做了一点点改动,对界面进行美化。

xml代码中CalendarView部分如下:

    <LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="8"
android:orientation="vertical" > <CalendarView
android:id="@+id/calendarview"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:focusedMonthDateColor="@color/whitesmoke"
android:unfocusedMonthDateColor="@color/transparent"
android:selectedWeekBackgroundColor="@color/transparent"
android:showWeekNumber="false"
android:weekSeparatorLineColor="@color/transparent" />
</LinearLayout>

 

实现的效果图是这样的:

以上代码就引出了使用到了CalendarView类的属性设置,看看在设置是用得较多的代码:

公有方法
  getDate()

Gets the selected date in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  getDateTextAppearance()

Gets the text appearance for the calendar dates.
  getFirstDayOfWeek()

Gets the first day of week.
  getFocusedMonthDateColor()

Gets the color for the dates in the focused month.
  getMaxDate()

Gets the maximal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  getMinDate()

Gets the minimal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  getSelectedDateVerticalBar()

Gets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
  getSelectedWeekBackgroundColor()

Gets the background color for the selected week.
  getShowWeekNumber()

Gets whether to show the week number.
  getShownWeekCount()

Gets the number of weeks to be shown.
  getUnfocusedMonthDateColor()

Gets the color for the dates in a not focused month.
  getWeekDayTextAppearance()

Gets the text appearance for the week day abbreviation of the calendar header.
  getWeekNumberColor()

Gets the color for the week numbers.
  getWeekSeparatorLineColor()

Gets the color for the separator line between weeks.
  isEnabled()

返回该视图的活性状态.由子类来解释各自的活性状态.
  onInitializeAccessibilityEvent(AccessibilityEvent event)

使用作为事件源的该视图的信息初始化 AccessibilityEvent 事件.换句话说, 该视图状态的变化是触发辅助事件的源头.
  onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)

使用该视图的信息初始化 AccessibilityNodeInfo 对象.
  setDate(long date)

Sets the selected date in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  setDate(long date, boolean animate, boolean center)

Sets the selected date in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  setDateTextAppearance(int resourceId)

Sets the text appearance for the calendar dates.
  setEnabled(boolean enabled)

设置视图的可用状态.由子类决定视图的各可用状态如何显示.
  setFirstDayOfWeek(int firstDayOfWeek)

Sets the first day of week.
  setFocusedMonthDateColor(int color)

Sets the color for the dates of the focused month.
  setMaxDate(long maxDate)

Sets the maximal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  setMinDate(long minDate)

Sets the minimal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
  setOnDateChangeListener(CalendarView.OnDateChangeListener listener)

Sets the listener to be notified upon selected date change.
  setSelectedDateVerticalBar(Drawable drawable)

Sets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
  setSelectedDateVerticalBar(int resourceId)

Sets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
  setSelectedWeekBackgroundColor(int color)

Sets the background color for the selected week.
  setShowWeekNumber(boolean showWeekNumber)

Sets whether to show the week number.
  setShownWeekCount(int count)

Sets the number of weeks to be shown.
  setUnfocusedMonthDateColor(int color)

Sets the color for the dates of a not focused month.
  setWeekDayTextAppearance(int resourceId)

Sets the text appearance for the week day abbreviation of the calendar header.
  setWeekNumberColor(int color)

Sets the color for the week numbers.
  setWeekSeparatorLineColor(int color)

Sets the color for the separator line between weeks.

一般常用的方法摘借(非本人翻译,感谢翻译的朋友们):

long getDate();  //获取从1970年,1月1日,0点0分0秒到现在的毫秒数,因为返回是long型最终只能截止到2038年

    int getFirstDayOfWeek();  //获取当天是本周的第几天,Android123提示返回的定义在java.util.Calendar类中,比如Calendar.Monday为星期一,定义值为2。

    long getMaxDate();  //获取CalendarView支持1970年到那天的最大天数

    long getMinDate(); //获取CalendarView支持1970年到那天的最小天数

    boolean getShowWeekNumber();  //获取是否显示星期号

    boolean isEnabled();  //是否显示本日历视图

    public void setDate(long date, boolean animate, boolean center); //设置选择日期到1970年的描述

    void setDate(long date); //设置选择的日期描述到1970年

    void setEnabled(boolean enabled); //设置是否启用视图

    void setFirstDayOfWeek(int firstDayOfWeek);  //设置本周起始天数

    void setMaxDate(long maxDate); 

    void setMinDate(long minDate); 

    void setOnDateChangeListener(CalendarView.OnDateChangeListener listener);   //日历视图修改的接口,这个介绍看下面。

    void setShowWeekNumber(boolean showWeekNumber); //设置是否显示周号

如果有了解更多,继续补充在这里

Android自带CalendarView类实现日历视图的更多相关文章

  1. Android学习笔记(27):日历视图Calendar

    日历视图CalendarView可用于显示和选择日期. 能够调用setOnDateChangedListener()方法绑定事件监听器. 经常使用XML属性和相关方法: XML属性 相关方法 说明 a ...

  2. Android零基础入门第60节:日历视图CalendarView和定时器Chronometer

    原文:Android零基础入门第60节:日历视图CalendarView和定时器Chronometer 上一期学习了AnalogClock.DigitalClock和TextClock时钟组件,本期继 ...

  3. Android日历视图(CalendarView)讲解-android学习之旅(三十六)

    CalendarView简介 CalendarView用于显示和选择日期,如果希望监听事件的改变可以用setOnDateChangeListener()方法. CalendarView属性介绍 代码示 ...

  4. Android 日历视图(Calendarview)

    1.介绍 2.常用属性 3.xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayou ...

  5. 日历视图(CalendarView)组件的功能和用法

    日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触摸来滚动日历.如果希望监控该组件的日历改变,可调用CalendarView的setOnDateChangeLi ...

  6. 日历视图(CalendarView)

    日历视图(Calendarview) 常用属性: android:selectedWeekBackgroundColor(设置被选中周的背景颜色) android:showWeekNumber(设置是 ...

  7. 调用Android自带日历功能(日历列表单、添加一个日历事件)

    调用Android自带日历功能  觉得这篇文章不错,转载过来. 转载:http://blog.csdn.net/djy1992/article/details/9948393 Android手机配备有 ...

  8. ios日历视图实现日期输入

    在视图控制器上,触摸textfield,打开的不是虚拟键盘,也不是datepicker,也不要actionsheet,要一个类似html上的日历输入框. 这类控件有很多开源的,但目标不是我想要的.参考 ...

  9. Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

随机推荐

  1. C++和pascal之间的通信

    // MyFirst.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include "Winsock2.h"#pragm ...

  2. 李洪强iOS开发之OC语言@property @synthesize和id

    OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...

  3. 如何在服务(Service)程序中显示对话框

    原文:http://www.vckbase.com/index.php/wv/94 服务程序(Service)一般是不能和用户进行交互的,所以他一般是不能显示窗口的.要和用户进行交互(如显示窗口),我 ...

  4. ios开发--高德地图SDK使用简介

    高德LBS开放平台将高德最专业的定位.地图.搜索.导航等能力,以API.SDK等形式向广大开发者免费开放.本章节我们来简单学习一下如何使用它的定位及地图SDK. 一.相关框架及环境配置 地图SDK 对 ...

  5. iOS开发--即时通讯

    什么是环信? 1.环信是一个第三平台,提供即时通信(IM–Instant Messaging )的服务 2.环信是在XMPP的基础上进行二次开发 3.环信在网络上传输的数据也是XML 4.使用环信,不 ...

  6. Java学习笔记之:Java的数据类型

    一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...

  7. 258. Add Digits

    题目: Given a non-negative integer num, repeatedly add all its digits until the result has only one di ...

  8. iOS:自定义工具栏、导航栏、标签栏

    工具栏为UIToolBar,导航栏UINavigationBar,标签栏UITabBar.它们的样式基本上时差不多的,唯一的一点区别就是,工具栏一般需要自己去创建,然后添加到视图中,而导航栏和标签栏不 ...

  9. Splunk常用命令

    重启/查看状态/停止splunk [root@localhost splunk]# /opt/splunk/bin/splunk restart / status / stop

  10. Android 动态改变布局属性RelativeLayout.LayoutParams.addRule()

    我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的 ...