1、安卓日历开发源代码 】 /* * 日历gridview中的每一个item显示的textview * author lmw * */ public class CalendarAdapter extends BaseAdapter private boolean isLeapyear = false; /是否为闰年 private int daysOfMonth = 0; /某月的天数 private int dayOfWeek = 0; /具体某一天是星期几 private int lastDaysOfMonth = 0; /上一个月的总天数 private Context context;
2、private String dayNumber = new String42; /一个gridview中的日期存入此数组中 / private static String week = 周日,周一,周二,周三,周四,周五,周六; private SpecialCalendar sc = null; private LunarCalendar lc = null; private Resources res = null; private Drawable drawable = null; private String currentYear = ; private String curren
3、tMonth = ; private String currentDay = ; private SimpleDateFormat sdf = new SimpleDateFormat(yyyy-M-d); private int currentFlag = -1; /用于标记当天 private int schDateTagFlag = null; /存储当月所有的日程日期 private String showYear = ; /用于在头部显示的年份 private String showMonth = ; /用于在头部显示的月份 private String animalsYear =
4、; private String leapMonth = ; /闰哪一个月 private String cyclical = ; /天干地支 /系统当前时间 private String sysDate = ; private String sys_year = ; private String sys_month = ; private String sys_day = ; public CalendarAdapter() Date date = new Date(); sysDate = sdf.format(date); /当期日期 sys_year = sysDate.split(-
5、)0; sys_month = sysDate.split(-)1; sys_day = sysDate.split(-)2; public CalendarAdapter(Context context,Resources rs,int jumpMonth,int jumpYear,int year_c,int month_c,int day_c) this(); this.context= context; sc = new SpecialCalendar(); lc = new LunarCalendar(); this.res = rs; int stepYear = year_c+j
6、umpYear; int stepMonth = month_c+jumpMonth ; if(stepMonth 0) /往下一个月滑动 if(stepMonth%12 = 0) stepYear = year_c + stepMonth/12 -1; stepMonth = 12; else stepYear = year_c + stepMonth/12; stepMonth = stepMonth%12; else /往上一个月滑动 stepYear = year_c - 1 + stepMonth/12; stepMonth = stepMonth%12 + 12; if(stepM
7、onth%12 = 0) currentYear = String.valueOf(stepYear); /得到当前的年份 currentMonth = String.valueOf(stepMonth); /得到本月 (jumpMonth为滑动的次数,每滑动一次就增加一月或减一月) currentDay = String.valueOf(day_c); /得到当前日期是哪天 getCalendar(Integer.parseInt(currentYear),Integer.parseInt(currentMonth); public CalendarAdapter(Context conte
8、xt,Resources rs,int year, int month, int day) this(); this.context= context; sc = new SpecialCalendar(); lc = new LunarCalendar(); this.res = rs; currentYear = String.valueOf(year); /得到跳转到的年份 currentMonth = String.valueOf(month); /得到跳转到的月份 currentDay = String.valueOf(day); /得到跳转到的天 getCalendar(Integ
9、er.parseInt(currentYear),Integer.parseInt(currentMonth); Override public int getCount() / TODO Auto-generated method stub return dayNumber.length; Override public Object getItem(int position) / TODO Auto-generated method stub return position; Override public long getItemId(int position) / TODO Auto-
10、generated method stub return position; Override public View getView(int position, View convertView, ViewGroup parent) if(convertView = null) convertView = LayoutInflater.from(context).inflate(R.layout.calendar_item, null); TextView textView = (TextView) convertView.findViewById(R.id.tvtext); String
11、d = dayNumberposition.split(.)0; String dv = dayNumberposition.split(.)1; SpannableString sp = new SpannableString(d+n+dv); sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, d.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new RelativeSizeSpan(1.2f) , 0, d.length(), Spanned.SPAN_
12、EXCLUSIVE_EXCLUSIVE); if(dv != null |dv != ) sp.setSpan(new RelativeSizeSpan(0.75f), d.length()+1, dayNumberposition.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); / sp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 14, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) textView.setText(sp); textView.setTextColor
13、(Color.GRAY); / if(position7) / /设置周 / textView.setTextColor(Color.WHITE); / textView.setBackgroundColor(color.search_txt_color); / textView.setTextSize(14); / if (position = dayOfWeek) / 当前月信息显示 textView.setTextColor(Color.BLACK);/ 当月字体设黑 drawable = res.getDrawable(R.drawable.current_day_bgc); if(schDateTagFlag != null & schDateTagFlag.length 0) for(int i = 0; i schDateTagFlag.length; i+) if(schDateTagFlagi = position) /设置日程标记背景 textView.setBackgroundResource(R.drawable.mark); if(currentFlag = position) /设置当天的背景 drawable = res.getDrawable(R.drawable.current_day_bgc);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1