1.1先来张图
2.2原理
3.2.1系统原理
4.实现了会议室的预定功能,且通过日历时间轴等等控件来控制会议室的使用。
5.2.2数据库
6.使用了郭霖的LitePal,具体请移步http://blog.csdn.net/guolin_blog。
7.2.3TimeLine控件源码
packagecom.example.shijianzhou;importjava.util.ArrayList;importjava.util.Calendar;importjava.util.HashMap;importandroid.content.Context;importandroid.os.Handler;importandroid.os.SystemClock;importandroid.text.format.Time;importandroid.util.AttributeSet;importandroid.view.Display;importandroid.view.LayoutInflater;importandroid.view.WindowManager;importandroid.widget.ImageView;importandroid.widget.LinearLayout;/***用来实现会议预定的时间轴。**@version0.1*@authorzhou**/publicclassTimeLineextendsLinearLayout{privateRunnablemTicker;privateHandlermHandler;/***控制定时线程是否运行的flag。*/privatebooleanmTickerStopped;privateCalendarmCalendar;privateStringmFormat"hh:mm:ss";privateImageViewpasttime;privateintWidth;privateintHeight;privateLinearLayoutmainline;privateArrayListHashMapString,Integerhuiyitimelist;publicTimeLine(Contextcontext,AttributeSetattrs){super(context,attrs);//TODOAuto-generatedconstructorstubLayoutInflater.from(context).inflate(R.layout.timeline,this,true);pasttime(ImageView)findViewById(R.id.pasttime);mainline(LinearLayout)findViewById(R.id.mainline);initTimeLine(context);}@OverrideprotectedvoidonAttachedToWindow(){super.onAttachedToWindow();setmTickerstart();}@OverrideprotectedvoidonDetachedFromWindow(){super.onDetachedFromWindow();mTickerStoppedtrue;}privatevoidinitTimeLine(Contextcontext){if(mCalendarnull){mCalendarCalendar.getInstance();}huiyitimelistnewArrayListHashMapString,Integer();//取得屏幕的宽度和高度WindowManagerwindowManager(WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);DisplaydisplaywindowManager.getDefaultDisplay();Widthdisplay.getWidth();Heightdisplay.getHeight();}/****移动游标到指定位置。**@paramposition*位置参数。*/publicvoidmovePoint(intposition){android.view.ViewGroup.LayoutParamsparamspasttime.getLayoutParams();params.widthposition;pasttime.setLayoutParams(params);}/****使时间轴上指定的一段变红,即该段时间会议室已经被预定。**@paramstart*起始时间(秒)*@paramend*结束时间(秒)**@return-1失败1成功。*/publicintsetSegmentRed(intstart,intend){HashMapString,IntegermapnewHashMapString,Integer();map.put("starttime",start);map.put("endtime",end);startstart*Width/(24*60*60);endend*Width/(24*60*60);map.put("start",start);map.put("end",end);if(endstart){return-1;//代表会议时间错误。}for(inti0;ihuiyitimelist.size();i++){intstartlocalhuiyitimelist.get(i).get("start");intendlocalhuiyitimelist.get(i).get("end");if((startstartlocalstartendlocal)|(endstartlocalendendlocal)){return-2;//代表会议时间冲突。}}huiyitimelist.add(map);mainline.removeAllViews();for(inti0;ihuiyitimelist.size();i++){intstartlocalhuiyitimelist.get(i).get("start");intendlocalhuiyitimelist.get(i).get("end");LinearLayoutlayout_sub_LinnewLinearLayout(getContext());LinearLayout.LayoutParamsLP_WWnewLinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);LP_WW.width(endlocal-startlocal);if(i0){LP_WW.leftMarginstartlocal;}else{LP_WW.leftMarginstartlocal-huiyitimelist.get(i-1).get("end");}layout_sub_Lin.setLayoutParams(LP_WW);layout_sub_Lin.setBackgroundColor(0x88ffff00);mainline.addView(layout_sub_Lin);}return1;}/***清除所有时间轴上的会议占用时间标记。*/publicvoidclearAllsegment(){mainline.removeAllViews();huiyitimelist.clear();}/***控制定时器是否继续工作。**@parammTickerStopped*true则时钟停止。*/publicvoidsetmTickerStopped(){mTickerStoppedtrue;movePoint(0);}/***时间轴动起来。*/publicvoidsetmTickerstart(){//TODOAuto-generatedmethodstubmTickerStoppedfalse;mHandlernewHandler();mTickernewRunnable(){publicvoidrun(){if(mTickerStopped){return;}else{mCalendar.setTimeInMillis(System.currentTimeMillis());TimetnewTime();//orTimetnewTime("GMT+8");加上Time//Zone资料。t.setToNow();//取得系统时间。inthourt.hour;//0-23intminutet.minute;intsecondt.second;intallsecondshour*60*60+minute*60+second;intpointallseconds*Width/(24*60*60);movePoint(point);invalidate();//遍历是否有会议开始或者结束。//Log.v("znz","size--"+huiyitimelist.size());//Log.v("znz",//"starttime--"//+huiyitimelist.get(0).get("starttime"));//Log.v("znz","allseconds---"+allseconds);//Log.v("znz",//"endtime--"+huiyitimelist.get(0).get("endtime"));for(inti0;ihuiyitimelist.size();i++){if(allsecondshuiyitimelist.get(i).get("starttime")allsecondshuiyitimelist.get(i).get("endtime")){if(timelinecallback!null){timelinecallback.huiyiStarted(huiyitimelist.get(i).get("starttime"),huiyitimelist.get(i).get("endtime"));break;}}if(i(huiyitimelist.size()-1)){if(timelinecallback!null){timelinecallback.huiyiStoped();}}}longnowSystemClock.uptimeMillis();longnextnow+(1000-System.currentTimeMillis()%1000);mHandler.postAtTime(mTicker,next);}}};mTicker.run();}privateTimelineCallbacktimelinecallback;/***@paramtimelinecallback*thetimelinecallbacktoset*/publicvoidsetTimelinecallback(TimelineCallbacktimelinecallback){this.timelinecallbacktimelinecallback;}}2.4项目下载8.http://download.csdn.net/detail/zhounanzhaode/8902951
Android会议室管理app-多个会议室预约功能的app-会议室预定小程序
浏览量:3730
时间:
来源:西柯土司
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










