Android史上功能最全的日历控件
来源:互联网 发布:centos自带gcc吗 编辑:程序博客网 时间:2024/05/22 18:21
※效果
※使用方法
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();}});}}}
※Demo下载
http://download.csdn.net/detail/u010785585/8016687 0 0
- Android史上功能最全的日历控件
- 最简洁的日历控件(原创)
- 最简单的自定义日历控件
- Android 日历控件的实现
- android日历控件的使用
- IOS上的个人实现日历控件
- 史上版本最全android源码下载地址
- 史上最新最全的Android培训机构大揭秘
- Android这可能是当今最火,功能最全的快速开发框架了
- android方便自定义ui,功能的日历
- Android又一个超漂亮的日历控件
- 关于android日历控件的样式
- Android又一个超漂亮的日历控件
- Android带日程安排的自定义日历控件
- Android中日历控件的使用
- android 可签到的自定义日历控件
- android 可签到的自定义日历控件
- android - 怎么做出漂亮的日历控件
- C语言动态内存分配
- i2c时序
- Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushM
- iOS绘图教程
- myeclipse优化
- Android史上功能最全的日历控件
- android自定义开关控件-SlideSwitch
- 收集的一些学习ios的好网站
- TIN CAN整合
- intent activity间的传值
- 九 v4l2驱动文档之——streaming IO
- 如何在一个XML中插入序列化的类
- Microsoft.VisualBasic.Devices之Info 类
- kafka 札记-----kafka producer 端 发送数据分为 同步(实时)和异步(达到设定发送条件)