首页 > 代码库 > Android自带CalendarView类实现日历视图
Android自带CalendarView类实现日历视图
文章由来:学习一下日历控件的实现,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类实现日历视图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。