当前位置: 首页 > 科技观察

源码-实用日历控件

时间:2023-03-17 17:35:08 科技观察

源码介绍:自己修改的一个实用的日历控件,弹出效果,带动画。下载地址:http://down.51cto.com/data/2194851源码效果:源码片段:publicstaticsynchronizedPopCalendargetInstance(Contextcontext,Viewparent,intgravity,OnCellClickListeneronClickdate,OnClickListeneronConfirm,OnDismissListeneronDismiss){if(gravity!=-1){GRAVITY_FOR_POP=引力}if(context==null){returnull;}if(parent==null){returnull;}if(null==instance){Viewview=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_Next);MonthBtn=(TextView)view.findViewById(R.id.slide_time);TextViewbtn_confirm=(TextView)view.findViewById(R.id.tv_confirm);//下面两种获取宽高的方法getWindow().getDecorView().getWidth()instance=newPopCalendar(view,WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT,parent);finalOnCellClickListenerlistener=onClickdate;preImgBtn.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){mViewPager.setCurrentItem(mViewPager.getCurrentItem()-1);}});nextImgBtn.setOnClickListener(newView.OnClickListener)(新){@OverridepublicvoidonClick(Viewv){mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1);}});Calendarc=Calendar.getInstance();CalendarCard[]views=newCalendarCard[3];for(inti=0;i<3;i++){views[i]=newCalendarCard(context,newOnCellClickListener(){@OverridepublicvoidclickDate(CustomDatedate){if(listener!=null){listener.clickDate(date);}//window.dismiss();}@OverridepublicvoidchangeDate(CustomDatedate){slide_time.setText(date.year+"year"+date.month+"month");}},liang);}adapter=newCalendarViewAdapter(views);setViewPager();//设置popWindow弹出窗体可以点击,这句一定要加,而且是trueinstance.setFocusable(true);//实例化一个ColorDrawable颜色为半透明ColorDrawabledw=newColorDrawable(0xffffffff);instance.setBackgroundDrawable(dw);finalOnClickListeneronclick=onConfirm;btn_confirm.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){if(onclick!=null){onclick.onClick(v);}instance.dismiss();}});//设置popWindow的显示和消失动画instance.setAnimationStyle(R.style.mypopwindow_anim_style);//显示在底部//Viewparent=activity.findViewById(R.id.contact_main);//window.showAtLocation(父母,GRAVITY_FOR_POP,X_LOCATION,//Y_LOCATION);finalOnDismissListenerListener=onDismiss;//popWindow消失监听方法}});}returninstance;}