android 仿旅游日历控件_安卓分享—一款优雅的日历控件-Material Calendar View

因为项目中需要日历控件,作为一个懒惰的代码搬运工第一反应当然是去GitHub找,不过找到好看又好用的当然还是要拿出来和大家分享的,希望不要得到鄙视的目光。老规矩先上效果图。

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

calendarView.gif

作为一个简单的代码搬运工我的反应是这样的

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

666.gif

是这样的:

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

6+++.gif

需要直接下载demo并运行的同学请注意因为demo中gradle插件版本过低因此需要将build.gradle中的(替换成高版本即可)

classpath 'com.android.tools.build:gradle:2.4.0-alpha7'

替换成

classpath 'com.android.tools.build:gradle:2.2.2'

使用

1.添加依赖

compile 'com.prolificinteractive:material-calendarview:1.4.3'

2.布局中引用

xmlns:app="http://schemas.android.com/apk/res-auto"

android:id="@+id/calendarView"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:mcv_showOtherDates="all"

app:mcv_selectionColor="#00F"

/>

3.实现监听日期改变的接口和方法已得到我们选择的日期

@Override

public void onDateSelected(@NonNull MaterialCalendarView widget, @Nullable CalendarDay date, boolean selected) {

textView.setText(getSelectedDatesString());

}

@Override

public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {

//noinspection ConstantConditions

getSupportActionBar().setTitle(FORMATTER.format(date.getDate()));

}

private String getSelectedDatesString() {

CalendarDay date = widget.getSelectedDate();

if (date == null) {

return "No Selection";

}

return FORMATTER.format(date.getDate());

}

个性化功能定制-结合demo说明

1.常用方法说明

mcv.state().edit()

.setFirstDayOfWeek(Calendar.WEDNESDAY)

.setMinimumDate(CalendarDay.from(2016, 4, 3))

.setMaximumDate(CalendarDay.from(2016, 5, 12))

.setCalendarDisplayMode(CalendarMode.WEEKS)

.commit();

.setFirstDayOfWeek(Calendar.WEDNESDAY) 设置每周的第一天为周几,也就是国外常以周日为每周的第一天,国内则是周一,在布局中的表现就是图中标注的地方为周几

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

FirstDayOfWeek.png

setMinimumDate(CalendarDay.from(2016, 4, 3)) 日历的开始时间

.setMaximumDate(CalendarDay.from(2016, 5, 12)) 同理日历的结束时间

.setCalendarDisplayMode(CalendarMode.WEEKS) 日历的样式可选的有以周的形式和月的形式两种。

2.demo中功能

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

demo.png

Basic Example :最基本的使用选定时期可以用在票务应用之类

Calendar With Decorated : 选中日期带有装饰图标的美化

Calendar With Dynamic Modes : 设置日历显示样式(周,月)

**Disabled Days Example ** :可以设置在每个月中有哪些天是不可选定的

XML Customization : 属性完全在xml布局中设置

Calendar in Dialogs : 在对话框中显示

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Disabled_红色日期为不可选.png

暗尘随码去 明月逐人来

8327b6a2c493?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

star.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值