当前位置: 首页 > news >正文

网站建设实训经验总结网站空间免费

网站建设实训经验总结,网站空间免费,php网站开发的技术框架,购物网站服务器硬件配置前言最近由于项目需求#xff0c;要做一个仿小米日历的功能#xff0c;下面显示一天的日程#xff0c;header以周为单位进行滑动#xff0c;github上找了很久也没有找到合适的#xff0c;但找到一相近的开源项目Android-week-view#xff0c;它不是我们项目所需要的效果要做一个仿小米日历的功能下面显示一天的日程header以周为单位进行滑动github上找了很久也没有找到合适的但找到一相近的开源项目Android-week-view它不是我们项目所需要的效果但是它帮我们实现的Event的添加和事件的处理这让我们省了不少工作Android-week-view效果如下图废话不多说先看看我项目中的效果主要包括两个核心的类两个定义控件上面的WeekHeaderView和下面的WeekDayView都是继承的view然后计算位置将上面的week label 和下面的Day text 画上去通过Scroller和 GestureDetector控制滑动和处理各种事件。废话不多说直接教大家怎么用。首先是布局文件大家可以通过属性去控件文字的大小背影颜色、焦点颜色等等。xmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroid:idid/tv_dateandroid:layout_widthmatch_parentandroid:layout_height30dpandroid:background#455964android:gravitycenterandroid:text2015年1月android:textColor#ffffffandroid:textSize16sp/android:idid/weekheaderviewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_belowid/tv_dateapp:firstDayOfWeek2sundayapp:headerBackgroundColor#455964app:headerDayLabelNormalTextColor#ffffffapp:headerDayLabelTextSize20spapp:headerDayLabelTodayTextColorandroid:color/holo_red_darkapp:headerFocusBackgroundColor#ffffffapp:headerFocusSameDayBackgroundColor#ffffffapp:headerFocusSameDayTextColor#000000app:headerFocusTextColor#000000app:headerPaddingTop20dpapp:headerRowGap40dpapp:headerWeekLabelTextColor#ffffffapp:headerWeekLabelTextSize16sp /android:idid/weekdayviewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_belowid/weekheaderviewandroid:visibilityvisibleapp:columnGap8dpapp:dayBackgroundColor#ffffffffapp:eventTextColorandroid:color/whiteapp:headerColumnBackground#ffffffffapp:headerColumnPadding8dpapp:headerColumnTextColorcolor/toolbar_textapp:headerRowBackgroundColor#465a65app:headerRowPadding12dpapp:hourHeight60dpapp:noOfVisibleDays1app:textSize12spapp:todayBackgroundColor#1848adffapp:todayHeaderTextColorcolor/accent /java代码package com.guojunutb.weekview;import android.app.Activity;import android.graphics.RectF;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;import com.guojunustb.library.DateTimeInterpreter;import com.guojunustb.library.WeekDayView;import com.guojunustb.library.WeekHeaderView;import com.guojunustb.library.WeekViewEvent;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.Locale;/****/public class MainActivity extends Activity implements WeekDayView.MonthChangeListener,WeekDayView.EventClickListener, WeekDayView.EventLongPressListener,WeekDayView.EmptyViewClickListener,WeekDayView.EmptyViewLongPressListener,WeekDayView.ScrollListener {//viewprivate WeekDayView mWeekView;private WeekHeaderView mWeekHeaderView;private TextView mTv_date;List mNewEvent new ArrayList();Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);assignViews();}private void assignViews() {mWeekView (WeekDayView) findViewById(R.id.weekdayview);mWeekHeaderView (WeekHeaderView) findViewById(R.id.weekheaderview);mTv_date (TextView)findViewById(R.id.tv_date);//init WeekViewmWeekView.setMonthChangeListener(this);mWeekView.setEventLongPressListener(this);mWeekView.setOnEventClickListener(this);mWeekView.setScrollListener(this);mWeekHeaderView.setDateSelectedChangeListener(new WeekHeaderView.DateSelectedChangeListener() {Overridepublic void onDateSelectedChange(Calendar oldSelectedDay, Calendar newSelectedDay) {mWeekView.goToDate(newSelectedDay);}});mWeekHeaderView.setScrollListener(new WeekHeaderView.ScrollListener() {Overridepublic void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) {mWeekView.goToDate(mWeekHeaderView.getSelectedDay());}});setupDateTimeInterpreter(false);}/*** Set up a date time interpreter which will show short date values when in week view and long* date values otherwise.** param shortDate True if the date values should be short.*/private void setupDateTimeInterpreter(final boolean shortDate) {final String[] weekLabels{日,一,二,三,四,五,六};mWeekView.setDateTimeInterpreter(new DateTimeInterpreter() {Overridepublic String interpretDate(Calendar date) {SimpleDateFormat weekdayNameFormat new SimpleDateFormat(EEE, Locale.getDefault());String weekday weekdayNameFormat.format(date.getTime());SimpleDateFormat format new SimpleDateFormat(d, Locale.getDefault());return format.format(date.getTime());}Overridepublic String interpretTime(int hour) {return String.format(%02d:00, hour);}Overridepublic String interpretWeek(int date) {if(date7||date1){return null;}return weekLabels[date-1];}});}Overridepublic List onMonthChange(int newYear, int newMonth) {// Populate the week view with some events.List events new ArrayList();Calendar startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 3);startTime.set(Calendar.MINUTE, 0);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);Calendar endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR, 1);endTime.set(Calendar.MONTH, newMonth - 1);WeekViewEvent event new WeekViewEvent(1, This is a Event!!, startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_01));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 3);startTime.set(Calendar.MINUTE, 30);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.set(Calendar.HOUR_OF_DAY, 4);endTime.set(Calendar.MINUTE, 30);endTime.set(Calendar.MONTH, newMonth - 1);event new WeekViewEvent(10, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_02));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 4);startTime.set(Calendar.MINUTE, 20);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.set(Calendar.HOUR_OF_DAY, 5);endTime.set(Calendar.MINUTE, 0);event new WeekViewEvent(10, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_03));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 5);startTime.set(Calendar.MINUTE, 30);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 2);endTime.set(Calendar.MONTH, newMonth - 1);event new WeekViewEvent(2, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_02));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 5);startTime.set(Calendar.MINUTE, 30);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 2);endTime.set(Calendar.MONTH, newMonth - 1);event new WeekViewEvent(2, dddd, startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_01));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.HOUR_OF_DAY, 5);startTime.set(Calendar.MINUTE, 0);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);startTime.add(Calendar.DATE, 1);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 3);endTime.set(Calendar.MONTH, newMonth - 1);event new WeekViewEvent(3, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_03));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.DAY_OF_MONTH, 15);startTime.set(Calendar.HOUR_OF_DAY, 3);startTime.set(Calendar.MINUTE, 0);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 3);event new WeekViewEvent(4, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_04));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.DAY_OF_MONTH, 1);startTime.set(Calendar.HOUR_OF_DAY, 3);startTime.set(Calendar.MINUTE, 0);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 3);event new WeekViewEvent(5, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_01));events.add(event);startTime Calendar.getInstance();startTime.set(Calendar.DAY_OF_MONTH, startTime.getActualMaximum(Calendar.DAY_OF_MONTH));startTime.set(Calendar.HOUR_OF_DAY, 15);startTime.set(Calendar.MINUTE, 0);startTime.set(Calendar.MONTH, newMonth - 1);startTime.set(Calendar.YEAR, newYear);endTime (Calendar) startTime.clone();endTime.add(Calendar.HOUR_OF_DAY, 3);event new WeekViewEvent(5, getEventTitle(startTime), startTime, endTime);event.setColor(getResources().getColor(R.color.event_color_02));events.add(event);events.addAll(mNewEvent);return events;}private String getEventTitle(Calendar time) {return String.format(Event of %02d:%02d %s/%d, time.get(Calendar.HOUR_OF_DAY), time.get(Calendar.MINUTE), time.get(Calendar.MONTH) 1, time.get(Calendar.DAY_OF_MONTH));}Overridepublic void onEventClick(WeekViewEvent event, RectF eventRect) {Toast.makeText(MainActivity.this, Clicked event.getName(), Toast.LENGTH_SHORT).show();}Overridepublic void onEventLongPress(WeekViewEvent event, RectF eventRect) {Toast.makeText(MainActivity.this, Long pressed event: event.getName(), Toast.LENGTH_SHORT).show();}Overridepublic void onEmptyViewClicked(Calendar time) {Toast.makeText(MainActivity.this, Empty View clicked time.get(Calendar.YEAR) / time.get(Calendar.MONTH) / time.get(Calendar.DAY_OF_MONTH), Toast.LENGTH_LONG).show();}Overridepublic void onEmptyViewLongPress(Calendar time) {Toast.makeText(MainActivity.this, Empty View long clicked time.get(Calendar.YEAR) / time.get(Calendar.MONTH) / time.get(Calendar.DAY_OF_MONTH), Toast.LENGTH_LONG).show();}Overridepublic void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay) {}Overridepublic void onSelectedDaeChange(Calendar selectedDate) {mWeekHeaderView.setSelectedDay(selectedDate);mTv_date.setText(selectedDate.get(Calendar.YEAR)年(selectedDate.get(Calendar.MONTH)1)月);}}WeekHeaderView 和WeekDayView相互监听对方的滑动才能实现联动。第一次写博客就说这么多了有兴趣的朋友可以去github,下载源码看看我就不再献丑了。以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.sadfv.cn/news/237419/

相关文章:

  • led 网站建设网页代理软件
  • 做网站的哪家比较好南宁网站排名优化电话
  • 网站保持排名柬埔寨网站开发
  • 上海建设网站浦东新区污水管网工程wordpress dux主题5.2
  • 建网站怎么弄中文搜索引擎有哪些
  • 贵港网站营销快速seo优化
  • 黄山网站建设策划wordpress字体插件下载
  • 汉子由来 外国人做的网站珠海企业网站建设公司
  • 关于网站建设的调查问卷北京住房和城乡建设部网站首页
  • 银川网站网站建设wordpress横向导航菜单主题
  • 重庆网站建设cq新网站建设的流程
  • 江西做网站多少钱合肥网站建设服务平台
  • iis网站主目录模板网站会员
  • 为什么要做手机网站开发南充房产网最新楼盘最近房价
  • 营销型网站单页面泰安网站建设538sw
  • 四川建设行业数据共享平台网站问题天津地铁建设网站
  • 网站中点击链接怎么做淘宝网站建设杭州
  • wordpress网站页面打开很慢手机发布 wordpress文章
  • sketch可以做网站交互么微信网站开发
  • 做网站网页的成本推销网站建设具备哪些知识
  • 江苏泰州建设局网站企业网站建设找哪家
  • 网站建设待遇shopify做国内网站
  • 杭州公司网站制作维护多商户商城小程序源码
  • 黔南州建设局门户网站做网站一般需要多少钱
  • 网站建设怎么改首页的标题苏州营销策划公司有哪些
  • 做企业网站有什么工作内容黄页广告网站
  • 弹幕网站用什么做天津滨海新区网站建设
  • 长沙市网站制作电话昆明网站建设首选才力
  • 企业门户网站建设与发展趋势深圳网站排名优化团队
  • 自己做的网站被黑了怎么办什么是网站程序