基于Android的日历系统的设计与实现本科毕业设计论文 联系客服

发布时间 : 星期日 文章基于Android的日历系统的设计与实现本科毕业设计论文更新完毕开始阅读a38effed4bfe04a1b0717fd5360cba1aa8118c92

华北电力大学本科毕业设计(论文)

图3-2 主界面的布局示意图

3.3 主要算法与核心代码实现

3.3.1 主界面

主界面提供日期信息显示,允许呼出菜单栏,并支持左右滑动。 (1)主界面显示Activity

public void addTextToTopTextView(TextView view){

StringBuffer textDate = new StringBuffer();

draw = getResources().getDrawable(R.drawable.top_day); view.setBackgroundDrawable(draw); textDate.append(calV.getShowYear()).append(\年\

calV.getShowMonth()).append(\月\

if (!calV.getLeapMonth().equals(\.getLeapMonth() != null) {

textDate.append(\闰\.getLeapMonth()).append(\月\

.append(\

}

gridView = new GridView(this); gridView.setNumColumns(7); gridView.setColumnWidth(46);

14

华北电力大学本科毕业设计(论文)

if(Width == 480 && Height == 800){ }

gridView.setGravity(Gravity.CENTER_VERTICAL);

gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); gridView.setHorizontalSpacing(1);

gridView.setColumnWidth(69);

gridView.setVerticalSpacing(1);

gridView.setBackgroundResource(R.drawable.gridview_bk); (2)创建菜单

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, menu.FIRST, menu.FIRST, \今天\

menu.add(0, menu.FIRST+1, menu.FIRST+1, \跳转\menu.add(0, menu.FIRST+2, menu.FIRST+2, \日程\menu.add(0, menu.FIRST+3, menu.FIRST+3, \日期转换\return super.onCreateOptionsMenu(menu); }

(3)左右滑动屏幕

public class CalendarActivity extends Activity implements OnGestureListener {

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

int gvFlag = 0; //每次添加gridview到viewflipper中时给的标记 if (e1.getX() - e2.getX() > 120) {

addGridView(); //添加一个gridView jumpMonth++; //下一个月 calV = new CalendarView(this,

//像左滑动

getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);

gridView.setAdapter(calV); //flipper.addView(gridView); addTextToTopTextView(topText); gvFlag++;

flipper.addView(gridView, gvFlag);

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));

15

华北电力大学本科毕业设计(论文)

this.flipper.showNext(); flipper.removeViewAt(0); return true;

} else if (e1.getX() - e2.getX() < -120) {

addGridView(); //添加一个gridView jumpMonth--; //上一个月 calV = new CalendarView(this,

//向右滑动

getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);

gridView.setAdapter(calV); gvFlag++;

}

return false; }

return true;

3.3.2 菜单项目操作

菜单栏包含四项功能操作;当今日期定位、指定日期跳转、日程管理以及公农历转化。 (1)定位至今天日期

public boolean onMenuItemSelected(int featureId, MenuItem item) { switch (item.getItemId()){ case Menu.FIRST: //跳转到今天

int xMonth = jumpMonth; int xYear = jumpYear; int gvFlag =0; jumpMonth = 0; jumpYear = 0;

if(xMonth == 0 && xYear == 0){

//nothing to do

}else if((xYear == 0 && xMonth >0) || xYear >0){

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));

this.flipper.showNext();

}else{

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_in));

16

华北电力大学本科毕业设计(论文)

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_out));

this.flipper.showPrevious();

}

flipper.removeViewAt(0);

Break;

(2)指定日期跳转

@Override

public void onDateSet(DatePicker view, int year, int monthOfYear,

int dayOfMonth) { //不在查询范围内

new AlertDialog.Builder(CalendarActivity.this).setTitle(\错误日期if(year < 1901 || year > 2049){

new DatePickerDialog(this, new OnDateSetListener() {

\跳转日期范围(1901/1/1-2049/12/31)\确认\

}else{

gridView.setAdapter(calV); addTextToTopTextView(topText); gvFlag++;

flipper.addView(gridView,gvFlag);

if(year == year_c && monthOfYear+1 == month_c){ }

//跳转之后将跳转之后的日期设置为当期日期 year_c = year; } break;

}

month_c = monthOfYear+1; day_c = dayOfMonth; jumpMonth = 0; jumpYear = 0;

//nothing to do

flipper.removeViewAt(0);

},year_c, month_c-1, day_c).show();

(3)日程管理 case Menu.FIRST+2:

17