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>
|