android日历控件

自定义日历控件使用教程

今天给大家介绍一个自定义的日历控件,代码太多了,具体我就不去介绍,我下面只介绍如何使用,并且可以更改的地方。然后就可以达到自己需要的目的即可。

效果图如下:


首先在BaseCalendar里面的onCreate方法里面看看,代码如下:

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
//		setContentView(generateContentView());
		setContentView(R.layout.main);
		layout1=(LinearLayout)findViewById(R.id.layout1);
		//加载日历控件
		layout1.addView(generateContentView());
		UpdateStartDateForMonth();
		
		//效果文件
		slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
		slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
		slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
		slideRightOut = AnimationUtils.loadAnimation(this,R.anim.slide_right_out);
		
		slideLeftIn.setAnimationListener(animationListener);
		slideLeftOut.setAnimationListener(animationListener);
		slideRightIn.setAnimationListener(animationListener);
		slideRightOut.setAnimationListener(animationListener);
		
		mGesture = new GestureDetector(this, new GestureListener());
	}

如上面的代码所示,我们可以看到这个这个方法里面做了一些效果文件,当然大家也可以使用其他的效果文件,还有主要的是layout1.addview()这个方法,它添加就是这个日历控件了,所以大家应该明白,这意味着什么,只要大家定义一个layout在任何情况下都可以引用这个日历控件,开发起来比较方便。

还有一个回调方法也是比较重要的,这个方法可以得到当前的是某个月的几号。代码如下:

<span style="white-space:pre">		</span>@Override
		public boolean onSingleTapUp(MotionEvent e) {
			// ListView lv = getListView();
			//得到当前选中的是第几个单元格
			int pos = gView2.pointToPosition((int) e.getX(), (int) e.getY());
			LinearLayout txtDay = (LinearLayout) gView2.findViewById(pos + 5000);
//			TextView txtDay=(TextView)gView2.findViewById(pos+5000);
			if (txtDay != null) {
				if (txtDay.getTag() != null) {
					Date date = (Date) txtDay.getTag();
					calSelected.setTime(date);

					gAdapter.setSelectedDate(calSelected);
					gAdapter.notifyDataSetChanged();
<span style="white-space:pre">					</span>
					gAdapter1.setSelectedDate(calSelected);
					gAdapter1.notifyDataSetChanged();

					gAdapter3.setSelectedDate(calSelected);
					gAdapter3.notifyDataSetChanged();
				}
			}
			Log.i("TEST", "onSingleTapUp -  pos=" + pos);
			View view=(View)txtDay;
			TextView tv=(TextView)view.findViewById(pos+500);//获得控件TextView,用于后面的Toast提示,当然可以自己定义一个TextView显示在控件上
//			tv.setBackgroundColor(Color.BLUE);
			Toast.makeText(BaseCalendar.this, tv.getText(), Toast.LENGTH_SHORT).show();
			return false;
		}
	}
上面的代码主要还是最后那几句话,当然大家不需要理解,只要拿过来用就行了。

最后提醒大家的是,如果想改这个日历的颜色或者日历上的字体颜色边框等等,都可以在color.xml里面改,这里不做过多的解释,demo里面注释的也比较详细。

源码下载地址:http://download.youkuaiyun.com/detail/u014128885/8777097

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值