Source code introduction: A practical calendar control modified by myself, with pop effect and animation. Download address: http://download..com/data/2194851 Source code effect:
Source code snippet: - public static synchronized PopCalendar getInstance(Context context, View parent, int gravity, OnCellClickListener onClickdate,
- OnClickListener onConfirm, OnDismissListener onDismiss) {
- if (gravity != - 1 ) {
- GRAVITY_FOR_POP = gravity;
- }
- if (context == null ) {
- return null ;
- }
- if (parent == null ) {
- return null ;
- }
-
- if ( null == instance) {
- View view = LayoutInflater.from(context).inflate(R.layout.layout_calendar, null );
- mViewPager = (ViewPager) view.findViewById(R.id.activity_user_calendar_Viewpager);
- preImgBtn = (ImageButton) view.findViewById(R.id.activity_user_calendar_PreMonthBtn);
- nextImgBtn = (ImageButton) view.findViewById(R.id.activity_user_calendar_NextMonthBtn);
- slide_time = (TextView) view.findViewById(R.id.slide_time);
- TextView btn_confirm = (TextView) view.findViewById(R.id.tv_confirm);
-
- instance = new PopCalendar(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT, parent);
-
- final OnCellClickListener listener = onClickdate;
-
- preImgBtn.setOnClickListener( new View.OnClickListener() {
-
- @Override
- public void onClick(View v) {
- mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1 );
- }
- });
- nextImgBtn.setOnClickListener( new View.OnClickListener() {
-
- @Override
- public void onClick(View v) {
- mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1 );
- }
- });
-
- Calendar c = Calendar.getInstance();
-
- CalendarCard[] views = new CalendarCard[ 3 ];
- for ( int i = 0 ; i < 3 ; i++) {
- views[i] = new CalendarCard(context, new OnCellClickListener() {
-
- @Override
- public void clickDate(CustomDate date) {
- if (listener != null ) {
- listener.clickDate(date);
- }
-
- }
-
- @Override
- public void changeDate(CustomDate date) {
- slide_time.setText(date.year + "year" + date.month + "month" );
- }
- },liang);
- }
-
- adapter = new CalendarViewAdapter<calendarcard>(views);
- setViewPager();
-
-
- instance.setFocusable( true );
-
-
- ColorDrawable dw = new ColorDrawable( 0xffffffff );
- instance.setBackgroundDrawable(dw);
- final OnClickListener onclick = onConfirm;
- btn_confirm.setOnClickListener( new View.OnClickListener() {
-
- @Override
- public void onClick(View v) {
- if (onclick != null ) {
- onclick.onClick(v);
- }
- instance.dismiss();
- }
- });
-
-
- instance.setAnimationStyle(R.style.mypopwindow_anim_style);
-
-
-
-
- final OnDismissListener dListener = onDismiss;
-
- instance.setOnDismissListener( new OnDismissListener() {
-
- @Override
- public void onDismiss() {
- if (dListener != null ) {
- dListener.onDismiss();
- }
- System.out.println( "popWindow disappears" );
- }
- });
- }
- return instance;
- }</calendarcard>
|