Android自定義水平日曆控制元件
阿新 • • 發佈:2019-01-09
ZzHorizontalCalenderView
A horizontal and scrollable CalenderView.
Gradle:
compile 'me.zhouzhuo.zzhorizontalcalenderview:zz-horizontal-calenderview:1.0.0'
Maven:
<dependency>
<groupId>me.zhouzhuo.zzhorizontalcalenderview</groupId>
<artifactId>zz-horizontal-calenderview</artifactId >
<version>1.0.0</version>
<type>pom</type>
</dependency>
功能簡介:
1.支援年、月、日、星期的文字顏色配置;
2.支援日的選中顏色配置;
3.支援年月對話方塊選擇;
4.支援年和月點選回撥;
5.支援年月日星期點選回撥;
6.支援選中自動滑動到中間;
7.支援今天小圓點標註;
8.支援今天小圓點顏色配置;
9.所有配置均支援xml屬性配置或java程式碼動態設定;
效果圖如下:
屬性:
<declare-styleable name ="ZzHorizontalCalenderView">
<attr name="zhc_show_pick_dialog" format="boolean" />
<attr name="zhc_unit_color" format="color|reference" />
<attr name="zhc_selection_color" format="color|reference" />
<attr name="zhc_press_shape_selector" format="reference" />
<attr name="zhc_year_text_color" format="color|reference" />
<attr name="zhc_month_text_color" format="color|reference" />
<attr name="zhc_week_text_color" format="color|reference" />
<attr name="zhc_day_selected_text_color" format="color|reference" />
<attr name="zhc_day_unselected_text_color" format="color|reference" />
<attr name="zhc_today_point_color" format="color|reference" />
</declare-styleable>
屬性說明:
屬性名稱 | 屬性作用 | 屬性型別 |
---|---|---|
zhc_show_pick_dialog | 點選年或月是否彈出日期選擇對話方塊 | boolean |
zhc_unit_color | 年月單位的顏色 | color |
zhc_selection_color | 日的選中顏色 | color |
zhc_press_shape_selector | 年或月或日點選效果選擇器 | selector |
zhc_year_text_color | 年的顏色 | color |
zhc_month_text_color | 月的顏色 | color |
zhc_week_text_color | 星期的顏色 | color |
zhc_day_selected_text_color | 日選中時文字顏色 | color |
zhc_day_unselected_text_color | 日未選中時文字顏色 | color |
zhc_today_point_color | 今天的下表點的顏色 | color |
用法簡介:
① xml 程式碼
<me.zhouzhuo.zzhorizontalcalenderview.ZzHorizontalCalenderView
android:id="@+id/zz_horizontal_calender_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:zhc_day_selected_text_color="@android:color/white"/>
②java 程式碼
final ZzHorizontalCalenderView view = (ZzHorizontalCalenderView) findViewById(R.id.zz_horizontal_calender_view);
//日點選監聽
view.setOnDaySelectedListener(new ZzHorizontalCalenderView.OnDaySelectedListener() {
@Override
public void onSelected(boolean hasChanged, int year, int month, int day, int week) {
tvResult.setText("日期是否有變化:" + hasChanged + ",\n\n日期:" + year + "-" + month + "-" + day + ",\n\n星期:" + week);
}
});
//動態設定各種屬性值:
view.setShowPickDialog(true);
view.setUnitColorResId(android.R.color.holo_green_dark);
view.setDayTextColorSelectedResId(android.R.color.holo_blue_bright);
view.setDayTextColorNormalResId(android.R.color.holo_red_dark);
view.setDaySelectionColorResId(android.R.color.holo_orange_dark);
view.setTodayPointColor(Color.YELLOW);
view.setMonthTextColor(Color.RED);
view.setYearTextColor(Color.BLUE);
//年月點選監聽
view.setOnYearMonthClickListener(new ZzHorizontalCalenderView.OnYearMonthClickListener() {
@Override
public void onYearClick(int selectedYear, int selectedMonth) {
tvResult.setText("點選了年:("+selectedYear+","+selectedMonth+")");
}
@Override
public void onMonthClick(int selectedYear, int selectedMonth) {
tvResult.setText("點選了月 :("+selectedYear+","+selectedMonth+")");
}
});