android自定义日历的使用方法

子夜枯灯123提供了一个自定义的android日历,他的博客地址如下:

http://blog.csdn.net/huangyanbin123/article/details/38350213

他提供的代码除了自定义日历外,还有一个demo,对于大部分人来说,仅仅需要展示一个日历,并响应日历的click事件即可。因此我简化了他的demo,给出了一个更加简单的demo和使用方法,方法分为三步:

第一步:导入

http://download.csdn.net/detail/huangyanbin123/7723323

中的代码。因为这不是一个library项目,因此直接将源代码加入你的工程即可。

第二步:建立一个如下的layout文件,主要是android.support.v4.view.ViewPager要放在合适的位置,它是日历控件的容器。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:textcircle="http://schemas.android.com/apk/res/com.example.calendar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#fffffe"
        android:orientation="vertical"
        android:paddingLeft="10dip"
        android:paddingRight="10dip" >

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:layout_alignParentTop="true"
            android:background="#20000000" >
        </View>

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="20dip"
            android:layout_marginBottom="2dip"
            android:layout_marginTop="2dip" >

            <TableRow>

                <TextView
                    style="@style/dateStyle"
                    android:text="日"
                    android:textColor="@color/date_1" />

                <TextView
                    style="@style/dateStyle"
                    android:text="一"
                    android:textColor="@color/date_2" />

                <TextView
                    style="@style/dateStyle"
                    android:text="二"
                    android:textColor="@color/date_2" />

                <TextView
                    style="@style/dateStyle"
                    android:text="三"
                    android:textColor="@color/date_2" />

                <TextView
                    style="@style/dateStyle"
                    android:text="四"
                    android:textColor="@color/date_2" />

                <TextView
                    style="@style/dateStyle"
                    android:text="五"
                    android:textColor="@color/date_2" />

                <TextView
                    style="@style/dateStyle"
                    android:text="六"
                    android:textColor="@color/date_1" />
            </TableRow>
        </TableLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:layout_alignParentTop="true"
            android:background="#20000000" >
        </View>
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/contentPager2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#fffffe" >

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="#F7F7F7"
            android:paddingLeft="15dip"
            android:paddingRight="10dip" >
        </android.support.v4.view.ViewPager>
    </RelativeLayout>

</LinearLayout>

第三步:创建自己的Activity类,如下所示:

package com.kidapk.www;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.widget.Toast;

import com.example.calendar.R;
import com.example.calendar.doim.CalendarViewBuilder;
import com.example.calendar.doim.CustomDate;
import com.example.calendar.widget.CalendarView;
import com.example.calendar.widget.CalendarView.CallBack;
import com.example.calendar.widget.CalendarViewPagerLisenter;
import com.example.calendar.widget.CustomViewPagerAdapter;

public class TestCalendarActivity extends Activity implements CallBack{
	
	private ViewPager viewPager;
	private CalendarView[] views;
	private CalendarViewBuilder builder = new CalendarViewBuilder();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_test);
		
		//初始化控件
		viewPager = (ViewPager) this.findViewById(R.id.viewpager2);
		views = builder.createMassCalendarViews(this, 5, this);   //产生多个CalendarView
		this.findViewById(R.id.contentPager2);
		
		//设置控件
		CustomViewPagerAdapter<CalendarView> viewPagerAdapter = new CustomViewPagerAdapter<CalendarView>(views);
		viewPager.setAdapter(viewPagerAdapter);
		viewPager.setCurrentItem(498);   //views可翻动498页
		viewPager.setOnPageChangeListener(new CalendarViewPagerLisenter(viewPagerAdapter));
		}
	
	@Override
	public void clickDate(CustomDate date) {
		Toast.makeText(this, date.year+"-"+date.month+"-"+date.day, Toast.LENGTH_SHORT).show();
	}

	@Override
	public void onMesureCellHeight(int cellSpace) {
		
	}

	@Override
	public void changeDate(CustomDate date) {
	}

}
app的效果如下图所示:


技术分享


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。