Android又一个超漂亮的日历控件

转载 2015年07月09日 11:00:21

2014-07-24      0 个评论    来源:u010785585的专栏  

※效果

\

※使用方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.fancyy.calendarweight;
 
import java.util.ArrayList;
import java.util.List;
 
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
 
import com.fancyy.calendarweight.KCalendar.OnCalendarClickListener;
import com.fancyy.calendarweight.KCalendar.OnCalendarDateChangedListener;
 
public class MainActivity extends Activity {
 
    String date = null;// 设置默认选中的日期  格式为 “2014-04-05” 标准DATE格式  
 
    Button bt;
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
        bt = (Button) findViewById(R.id.bt);
        bt.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                new PopupWindows(MainActivity.this, bt);
            }
        });
    }
 
    public class PopupWindows extends PopupWindow {
 
        public PopupWindows(Context mContext, View parent) {
 
            View view = View.inflate(mContext, R.layout.popupwindow_calendar,
                    null);
            view.startAnimation(AnimationUtils.loadAnimation(mContext,
                    R.anim.fade_in));
            LinearLayout ll_popup = (LinearLayout) view
                    .findViewById(R.id.ll_popup);
            ll_popup.startAnimation(AnimationUtils.loadAnimation(mContext,
                    R.anim.push_bottom_in_1));
 
            setWidth(LayoutParams.FILL_PARENT);
            setHeight(LayoutParams.FILL_PARENT);
            setBackgroundDrawable(new BitmapDrawable());
            setFocusable(true);
            setOutsideTouchable(true);
            setContentView(view);
            showAtLocation(parent, Gravity.BOTTOM, 0, 0);
            update();
 
            final TextView popupwindow_calendar_month = (TextView) view
                    .findViewById(R.id.popupwindow_calendar_month);
            final KCalendar calendar = (KCalendar) view
                    .findViewById(R.id.popupwindow_calendar);
            Button popupwindow_calendar_bt_enter = (Button) view
                    .findViewById(R.id.popupwindow_calendar_bt_enter);
 
            popupwindow_calendar_month.setText(calendar.getCalendarYear() + "年"
                    + calendar.getCalendarMonth() + "月");
 
            if (null != date) {
 
                int years = Integer.parseInt(date.substring(0,
                        date.indexOf("-")));
                int month = Integer.parseInt(date.substring(
                        date.indexOf("-") + 1, date.lastIndexOf("-")));
                popupwindow_calendar_month.setText(years + "年" + month + "月");
 
                calendar.showCalendar(years, month);
                calendar.setCalendarDayBgColor(date,
                        R.drawable.calendar_date_focused);             
            }
             
            List<string> list = new ArrayList<string>(); //设置标记列表
            list.add("2014-04-01");
            list.add("2014-04-02");
            calendar.addMarks(list, 0);
 
            //监听所选中的日期
            calendar.setOnCalendarClickListener(new OnCalendarClickListener() {
 
                public void onCalendarClick(int row, int col, String dateFormat) {
                    int month = Integer.parseInt(dateFormat.substring(
                            dateFormat.indexOf("-") + 1,
                            dateFormat.lastIndexOf("-")));
                     
                    if (calendar.getCalendarMonth() - month == 1//跨年跳转
                            || calendar.getCalendarMonth() - month == -11) {
                        calendar.lastMonth();
                         
                    } else if (month - calendar.getCalendarMonth() == 1 //跨年跳转
                            || month - calendar.getCalendarMonth() == -11) {
                        calendar.nextMonth();
                         
                    } else {
                        calendar.removeAllBgColor();
                        calendar.setCalendarDayBgColor(dateFormat,
                                R.drawable.calendar_date_focused);
                        date = dateFormat;//最后返回给全局 date
                    }
                }
            });
 
            //监听当前月份
            calendar.setOnCalendarDateChangedListener(new OnCalendarDateChangedListener() {
                public void onCalendarDateChanged(int year, int month) {
                    popupwindow_calendar_month
                            .setText(year + "年" + month + "月");
                }
            });
             
            //上月监听按钮
            RelativeLayout popupwindow_calendar_last_month = (RelativeLayout) view
                    .findViewById(R.id.popupwindow_calendar_last_month);
            popupwindow_calendar_last_month
                    .setOnClickListener(new OnClickListener() {
 
                        public void onClick(View v) {
                            calendar.lastMonth();
                        }
 
                    });
             
            //下月监听按钮
            RelativeLayout popupwindow_calendar_next_month = (RelativeLayout) view
                    .findViewById(R.id.popupwindow_calendar_next_month);
            popupwindow_calendar_next_month
                    .setOnClickListener(new OnClickListener() {
 
                        public void onClick(View v) {
                            calendar.nextMonth();
                        }
                    });
             
            //关闭窗口
            popupwindow_calendar_bt_enter
                    .setOnClickListener(new OnClickListener() {
 
                        public void onClick(View v) {
                            dismiss();
                        }
                    });
        }
    }
 
}
</string></string>

※Demo下载

http://download.csdn.net/detail/u010785585/7667921

一款好看的日历控件

android 一款好看的日历控件1.依赖包 compile 'com.prolificinteractive:material-calendarview:1.4.0' 布局中的使用:...
  • qq_38605423
  • qq_38605423
  • 2017年09月22日 17:21
  • 277

Android漂亮的日历控件(仿美柚日历)

  • 2016年07月06日 18:35
  • 2.07MB
  • 下载

Android史上功能最全的日历控件

Android史上最全的日历控件,带有周数,超全,超漂亮,超炫丽的日历控件。
  • u010785585
  • u010785585
  • 2014年10月09日 14:43
  • 3535

Android中日历控件的使用

一.概述因为项目中要用到选择日期的功能,所以特此来研究一下相关方面的知识,总结一下,也为了以后使用起来更加方便。二.介绍Android中自带了两个控件,DatePicker和TimePicker,分别...
  • Small_Lee
  • Small_Lee
  • 2016年04月10日 18:46
  • 5077

Android自定义控件之日历控件

Android自定义控件之日历控件三月份学习android,至今也有半年有余,中间也做过两个项目,但是依然感觉自己做的应用不是很有新意,比不上应用市场上那些应用如此绚丽。所以自己仍需继续努力。学习至今...
  • Mr_dsw
  • Mr_dsw
  • 2015年09月26日 22:21
  • 24887

安卓Andriod使用入门(七)【Android日历控件】

明天的希望,让我们忘了今天的痛苦。MainActivity.java代码:package siso.timessquare;import android.content.Intent; import ...
  • WuLex
  • WuLex
  • 2016年11月13日 12:01
  • 2122

Android又一个超漂亮的日历控件

2014-07-24      0 个评论    来源:u010785585的专栏   ※效果 ※使用方法 ? 1 2 3 ...
  • e10010e
  • e10010e
  • 2015年07月09日 11:00
  • 801

一个很漂亮的日历

.cal_0 table{ border:none; font-family:tahoma; font-size:9px; text-align:center; }.cal_0 th{ height:...
  • ytbada
  • ytbada
  • 2007年04月13日 17:11
  • 731

三款漂亮的js日历控件

这三款js日历控件非常精美漂亮,推荐给大家下载代码,自己使用,下面还有一个仿Vista的日历控件,大家也可以看看!   这个js日历代码的优势是:代码简介明了,方便用户使用修改。   js日历代码...
  • u012504864
  • u012504864
  • 2013年10月25日 12:39
  • 785

Android又一个超漂亮的日历控件

※效果 ※使用方法 package com.fancyy.calendarweight; import java.util.ArrayList; import java.util.List; ...
  • u010785585
  • u010785585
  • 2014年07月23日 14:12
  • 3756
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android又一个超漂亮的日历控件
举报原因:
原因补充:

(最多只允许输入30个字)