├── .gitignore
├── README.md
├── Screenshot_01.png
├── Screenshot_02.png
├── app
├── .DS_Store
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── .DS_Store
│ ├── androidTest
│ └── java
│ │ └── calendar
│ │ └── lemon
│ │ └── calendar
│ │ └── ApplicationTest.java
│ ├── main
│ ├── .DS_Store
│ ├── AndroidManifest.xml
│ ├── java
│ │ ├── .DS_Store
│ │ └── com
│ │ │ ├── .DS_Store
│ │ │ └── gsh
│ │ │ ├── .DS_Store
│ │ │ └── calendar
│ │ │ ├── MainActivity.java
│ │ │ ├── MensColorDetailActivity.java
│ │ │ ├── adapter
│ │ │ └── CalendarAdapter.java
│ │ │ ├── data
│ │ │ ├── CalendarOneScreenDataMonth.java
│ │ │ ├── CalendarOneScreenDataWeek.java
│ │ │ ├── DateData.java
│ │ │ ├── DayData.java
│ │ │ └── TestData.java
│ │ │ ├── util
│ │ │ ├── DateUtil.java
│ │ │ └── Utils.java
│ │ │ └── widget
│ │ │ ├── CalendarCard.java
│ │ │ ├── CalendarConstant.java
│ │ │ ├── CalendarViewPager.java
│ │ │ ├── CollapseScrollView.java
│ │ │ └── InnerScrollView.java
│ └── res
│ │ ├── .DS_Store
│ │ ├── color
│ │ ├── selector_title_date_color.xml
│ │ └── selector_week_color.xml
│ │ ├── drawable-xhdpi
│ │ ├── .DS_Store
│ │ ├── calendar_button_amount1_normal.png
│ │ ├── calendar_button_amount1_select.png
│ │ ├── calendar_button_amount2_normal.png
│ │ ├── calendar_button_amount2_select.png
│ │ ├── calendar_button_amount3_normal.png
│ │ ├── calendar_button_amount3_select.png
│ │ ├── calendar_button_amount4_normal.png
│ │ ├── calendar_button_amount4_select.png
│ │ ├── calendar_button_amount5_normal.png
│ │ ├── calendar_button_amount5_select.png
│ │ ├── calendar_button_pain1_normal.png
│ │ ├── calendar_button_pain1_select.png
│ │ ├── calendar_button_pain2_normal.png
│ │ ├── calendar_button_pain2_select.png
│ │ ├── calendar_button_pain3_normal.png
│ │ ├── calendar_button_pain3_select.png
│ │ ├── calender_bg_fertile.png
│ │ ├── calender_bg_period.png
│ │ ├── calender_button_amount1_normal.png
│ │ ├── calender_button_amount1_select.png
│ │ ├── calender_button_amount2_normal.png
│ │ ├── calender_button_amount2_select.png
│ │ ├── calender_button_amount3_normal.png
│ │ ├── calender_button_amount3_select.png
│ │ ├── calender_button_amount4_normal.png
│ │ ├── calender_button_amount4_select.png
│ │ ├── calender_button_amount5_normal.png
│ │ ├── calender_button_amount5_select.png
│ │ ├── calender_button_color1_normal.png
│ │ ├── calender_button_color1_select.png
│ │ ├── calender_button_color2_normal.png
│ │ ├── calender_button_color2_select.png
│ │ ├── calender_button_color3_normal.png
│ │ ├── calender_button_color3_select.png
│ │ ├── calender_button_color4_normal.png
│ │ ├── calender_button_color4_select.png
│ │ ├── calender_button_color5_normal.png
│ │ ├── calender_button_color5_select.png
│ │ ├── calender_button_down_black.png
│ │ ├── calender_button_down_white.png
│ │ ├── calender_button_help_black.png
│ │ ├── calender_button_help_white.png
│ │ ├── calender_button_menses1_normal.png
│ │ ├── calender_button_menses1_select.png
│ │ ├── calender_button_menses2_normal.png
│ │ ├── calender_button_menses2_select.png
│ │ ├── calender_button_menses3_normal.png
│ │ ├── calender_button_menses3_select.png
│ │ ├── calender_button_next.png
│ │ ├── calender_button_pain1_normal.png
│ │ ├── calender_button_pain1_select.png
│ │ ├── calender_button_pain2_normal.png
│ │ ├── calender_button_pain2_select.png
│ │ ├── calender_button_pain3_normal.png
│ │ ├── calender_button_pain3_select.png
│ │ ├── calender_button_today_black.png
│ │ ├── calender_button_today_white.png
│ │ ├── calender_help_icon_sanjiao.png
│ │ ├── public_button_back.png
│ │ ├── public_button_back_white.png
│ │ └── public_photo_yingying.png
│ │ ├── drawable-xxhdpi
│ │ ├── .DS_Store
│ │ ├── calendar_button_amount1_normal.png
│ │ ├── calendar_button_amount1_select.png
│ │ ├── calendar_button_amount2_normal.png
│ │ ├── calendar_button_amount2_select.png
│ │ ├── calendar_button_amount3_normal.png
│ │ ├── calendar_button_amount3_select.png
│ │ ├── calendar_button_amount4_normal.png
│ │ ├── calendar_button_amount4_select.png
│ │ ├── calendar_button_amount5_normal.png
│ │ ├── calendar_button_amount5_select.png
│ │ ├── calendar_button_pain1_normal.png
│ │ ├── calendar_button_pain1_select.png
│ │ ├── calendar_button_pain2_normal.png
│ │ ├── calendar_button_pain2_select.png
│ │ ├── calendar_button_pain3_normal.png
│ │ ├── calendar_button_pain3_select.png
│ │ ├── calender_bg_fertile.png
│ │ ├── calender_bg_period.png
│ │ ├── calender_button_amount1_normal.png
│ │ ├── calender_button_amount1_select.png
│ │ ├── calender_button_amount2_normal.png
│ │ ├── calender_button_amount2_select.png
│ │ ├── calender_button_amount3_normal.png
│ │ ├── calender_button_amount3_select.png
│ │ ├── calender_button_amount4_normal.png
│ │ ├── calender_button_amount4_select.png
│ │ ├── calender_button_amount5_normal.png
│ │ ├── calender_button_amount5_select.png
│ │ ├── calender_button_color1_normal.png
│ │ ├── calender_button_color1_select.png
│ │ ├── calender_button_color2_normal.png
│ │ ├── calender_button_color2_select.png
│ │ ├── calender_button_color3_normal.png
│ │ ├── calender_button_color3_select.png
│ │ ├── calender_button_color4_normal.png
│ │ ├── calender_button_color4_select.png
│ │ ├── calender_button_color5_normal.png
│ │ ├── calender_button_color5_select.png
│ │ ├── calender_button_down_black.png
│ │ ├── calender_button_down_white.png
│ │ ├── calender_button_help_black.png
│ │ ├── calender_button_help_white.png
│ │ ├── calender_button_menses1_normal.png
│ │ ├── calender_button_menses1_select.png
│ │ ├── calender_button_menses2_normal.png
│ │ ├── calender_button_menses2_select.png
│ │ ├── calender_button_menses3_normal.png
│ │ ├── calender_button_menses3_select.png
│ │ ├── calender_button_next.png
│ │ ├── calender_button_pain1_normal.png
│ │ ├── calender_button_pain1_select.png
│ │ ├── calender_button_pain2_normal.png
│ │ ├── calender_button_pain2_select.png
│ │ ├── calender_button_pain3_normal.png
│ │ ├── calender_button_pain3_select.png
│ │ ├── calender_button_today_black.png
│ │ ├── calender_button_today_white.png
│ │ ├── calender_help_icon_sanjiao.png
│ │ ├── public_button_back.png
│ │ ├── public_button_back_white.png
│ │ └── public_photo_yingying.png
│ │ ├── drawable-xxxhdpi
│ │ ├── .DS_Store
│ │ ├── calendar_button_amount1_normal.png
│ │ ├── calendar_button_amount1_select.png
│ │ ├── calendar_button_amount2_normal.png
│ │ ├── calendar_button_amount2_select.png
│ │ ├── calendar_button_amount3_normal.png
│ │ ├── calendar_button_amount3_select.png
│ │ ├── calendar_button_amount4_normal.png
│ │ ├── calendar_button_amount4_select.png
│ │ ├── calendar_button_amount5_normal.png
│ │ ├── calendar_button_amount5_select.png
│ │ ├── calendar_button_pain1_normal.png
│ │ ├── calendar_button_pain1_select.png
│ │ ├── calendar_button_pain2_normal.png
│ │ ├── calendar_button_pain2_select.png
│ │ ├── calendar_button_pain3_normal.png
│ │ ├── calendar_button_pain3_select.png
│ │ ├── calender_bg_fertile.png
│ │ ├── calender_bg_period.png
│ │ ├── calender_button_amount1_normal.png
│ │ ├── calender_button_amount1_select.png
│ │ ├── calender_button_amount2_normal.png
│ │ ├── calender_button_amount2_select.png
│ │ ├── calender_button_amount3_normal.png
│ │ ├── calender_button_amount3_select.png
│ │ ├── calender_button_amount4_normal.png
│ │ ├── calender_button_amount4_select.png
│ │ ├── calender_button_amount5_normal.png
│ │ ├── calender_button_amount5_select.png
│ │ ├── calender_button_color1_normal.png
│ │ ├── calender_button_color1_select.png
│ │ ├── calender_button_color2_normal.png
│ │ ├── calender_button_color2_select.png
│ │ ├── calender_button_color3_normal.png
│ │ ├── calender_button_color3_select.png
│ │ ├── calender_button_color4_normal.png
│ │ ├── calender_button_color4_select.png
│ │ ├── calender_button_color5_normal.png
│ │ ├── calender_button_color5_select.png
│ │ ├── calender_button_down_black.png
│ │ ├── calender_button_down_white.png
│ │ ├── calender_button_help_black.png
│ │ ├── calender_button_help_white.png
│ │ ├── calender_button_menses1_normal.png
│ │ ├── calender_button_menses1_select.png
│ │ ├── calender_button_menses2_normal.png
│ │ ├── calender_button_menses2_select.png
│ │ ├── calender_button_menses3_normal.png
│ │ ├── calender_button_menses3_select.png
│ │ ├── calender_button_next.png
│ │ ├── calender_button_pain1_normal.png
│ │ ├── calender_button_pain1_select.png
│ │ ├── calender_button_pain2_normal.png
│ │ ├── calender_button_pain2_select.png
│ │ ├── calender_button_pain3_normal.png
│ │ ├── calender_button_pain3_select.png
│ │ ├── calender_button_today_black.png
│ │ ├── calender_button_today_white.png
│ │ ├── calender_help_icon_sanjiao.png
│ │ ├── public_button_back.png
│ │ ├── public_button_back_white.png
│ │ └── public_photo_yingying.png
│ │ ├── drawable
│ │ ├── selector_back.xml
│ │ ├── selector_down.xml
│ │ ├── selector_help.xml
│ │ ├── selector_help_icon_sanjiao.xml
│ │ ├── selector_today.xml
│ │ ├── shape_border_bg.xml
│ │ ├── shape_circle_easy.xml
│ │ ├── shape_circle_easy_detail.xml
│ │ ├── shape_circle_mens.xml
│ │ ├── shape_circle_mens0.xml
│ │ ├── shape_circle_mens0_detail.xml
│ │ ├── shape_circle_mens_detail.xml
│ │ ├── shape_circle_ovu.xml
│ │ └── shape_circle_ovu_detail.xml
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ ├── content_main.xml
│ │ └── include_border_layout.xml
│ │ ├── menu
│ │ └── menu_main.xml
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-v21
│ │ └── styles.xml
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── calendar
│ └── lemon
│ └── calendar
│ ├── ExampleUnitTest.java
│ └── NewDateDifference.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── javatest
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── java
│ └── calendar
│ └── example
│ ├── MyClass.java
│ └── NewDateDifference.java
├── local.properties
├── pickerview
├── .DS_Store
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── .DS_Store
│ ├── androidTest
│ └── java
│ │ └── calendar
│ │ └── bigkoo
│ │ └── pickerview
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── calendar
│ │ └── bigkoo
│ │ └── pickerview
│ │ ├── Constant.java
│ │ ├── CustomPickerView.java
│ │ ├── HeightPickerView.java
│ │ ├── OptionsPickerView.java
│ │ ├── RaiingPickerLog.java
│ │ ├── TimePickerView.java
│ │ ├── WeightPickerView.java
│ │ ├── YMDPickerView.java
│ │ ├── adapter
│ │ ├── ArrayWheelAdapter.java
│ │ ├── NumericWheelAdapter.java
│ │ └── WheelAdapter.java
│ │ ├── dialog
│ │ └── PickerBaseDialog.java
│ │ ├── lib
│ │ ├── InertiaTimerTask.java
│ │ ├── LoopViewGestureListener.java
│ │ ├── MessageHandler.java
│ │ ├── OnItemSelectedRunnable.java
│ │ ├── SmoothScrollTimerTask.java
│ │ └── WheelView.java
│ │ ├── listener
│ │ ├── OnDismissListener.java
│ │ └── OnItemSelectedListener.java
│ │ ├── utils
│ │ ├── PickerViewAnimateUtil.java
│ │ └── PickerViewUtils.java
│ │ └── view
│ │ ├── BasePickerView.java
│ │ ├── SwitchButton.java
│ │ ├── WheelOptions.java
│ │ └── WheelTime.java
│ └── res
│ ├── anim
│ ├── slide_in_bottom.xml
│ └── slide_out_bottom.xml
│ ├── drawable
│ ├── selector_pickerview_btn.xml
│ ├── shape_layout.xml
│ ├── shape_left_tv.xml
│ ├── shape_left_tv_un.xml
│ ├── shape_right_tv.xml
│ └── shape_right_tv_un.xml
│ ├── layout
│ ├── include_pickerview_topbar.xml
│ ├── layout_basepickerview.xml
│ ├── pickerview_custom.xml
│ ├── pickerview_height.xml
│ ├── pickerview_options.xml
│ ├── pickerview_time.xml
│ ├── pickerview_weight.xml
│ ├── pickerview_ymd.xml
│ └── switch_button.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── integers.xml
│ ├── strings.xml
│ └── styles.xml
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the ART/Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | out/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio Navigation editor temp files
30 | .navigation/
31 |
32 | # Android Studio captures folder
33 | captures/
34 |
35 | # Intellij
36 | *.iml
37 | .idea/
38 | #.idea/workspace.xml
39 | #.idea/libraries
40 |
41 | # Keystore files
42 | *.jks
43 |
44 | *.DS_Store
45 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # calendarDemo
2 | 日历demo , 模仿小米
3 |
4 | ## 月视图
5 | 
6 |
7 |
8 | ## 周视图
9 | 
10 |
11 |
--------------------------------------------------------------------------------
/Screenshot_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/Screenshot_01.png
--------------------------------------------------------------------------------
/Screenshot_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/Screenshot_02.png
--------------------------------------------------------------------------------
/app/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/.DS_Store
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.1"
6 | defaultConfig {
7 | applicationId "com.gsh.calendar"
8 | minSdkVersion 18
9 | targetSdkVersion 24
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(dir: 'libs', include: ['*.jar'])
24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25 | exclude group: 'com.android.support', module: 'support-annotations'
26 | })
27 | compile 'com.android.support:appcompat-v7:24.2.0'
28 | compile 'com.android.support:design:24.2.0'
29 | testCompile 'junit:junit:4.12'
30 | compile project(':pickerview')
31 | }
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | //apply plugin: 'com.android.application'
40 | //
41 | //android {
42 | // compileSdkVersion 23
43 | // buildToolsVersion "23.0.1"
44 | //
45 | // defaultConfig {
46 | // applicationId "com.gsh.raiing"
47 | // minSdkVersion 19
48 | // targetSdkVersion 23
49 | // versionCode 1
50 | // versionName "1.0"
51 | // }
52 | // buildTypes {
53 | // release {
54 | // minifyEnabled false
55 | // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
56 | // }
57 | // }
58 | //}
59 | //
60 | //dependencies {
61 | // compile fileTree(include: ['*.jar'], dir: 'libs')
62 | // testCompile 'junit:junit:4.12'
63 | // compile 'com.android.support:appcompat-v7:23.1.1'
64 | // compile 'com.android.support:design:23.1.1'
65 | // compile project(':pickerview')
66 | //}
67 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/damon/Library/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/.DS_Store
--------------------------------------------------------------------------------
/app/src/androidTest/java/calendar/lemon/calendar/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | import java.util.Calendar;
7 | import java.util.Date;
8 | import java.util.TimeZone;
9 |
10 | /**
11 | * Testing Fundamentals
12 | */
13 | public class ApplicationTest extends ApplicationTestCase {
14 | public ApplicationTest() {
15 | super(Application.class);
16 | }
17 |
18 | public void test0(){
19 |
20 | System.out.println("language-->>"+getContext().getResources().getConfiguration().locale.getCountry());
21 | System.out.println("timeZone name-->>"+ TimeZone.getDefault().getDisplayName());
22 | System.out.println("timeZone offset-->>"+ TimeZone.getDefault().getRawOffset());
23 | String[] insert1 = new String[]{"3","11","2015" };
24 | String[] insert2 = new String[]{"20","3","2016" };
25 |
26 |
27 | Calendar cal = Calendar.getInstance();
28 |
29 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
30 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
31 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
32 | Date firstDate = cal.getTime();
33 |
34 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
35 | cal.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
36 | cal.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
37 | Date secondDate = cal.getTime();
38 |
39 |
40 | long diff = secondDate.getTime() - firstDate.getTime();
41 |
42 | System.out.println("Days0: " + (diff / 1000 / 60 / 60 / 24-60*60*1000L));
43 | System.out.println("Days1: " +getDiffDay(insert1,insert2));
44 | }
45 | public static int getDiffDay(String[] insert1, String[] insert2) {
46 | Calendar cal = Calendar.getInstance();
47 |
48 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
49 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
50 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
51 | cal.set(Calendar.HOUR_OF_DAY, 0);
52 | cal.set(Calendar.MINUTE, 0);
53 | cal.set(Calendar.SECOND,0);
54 | cal.set(Calendar.MILLISECOND, 0);
55 |
56 | int unix1 = (int) (cal.getTimeInMillis() / 1000L);
57 |
58 | Calendar cal2 = Calendar.getInstance();
59 |
60 | cal2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
61 | cal2.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
62 | cal2.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
63 | cal2.set(Calendar.HOUR_OF_DAY, 0);
64 | cal2.set(Calendar.MINUTE, 0);
65 | cal2.set(Calendar.SECOND,0);
66 | cal2.set(Calendar.MILLISECOND, 0);
67 | int unix2 = (int) (cal2.getTimeInMillis() / 1000L);
68 |
69 | int result = 0;
70 | for (int i = 0; i < 1000; i++) {
71 | cal2.add(Calendar.DATE, unix1 > unix2 ? 1 : -1);
72 | if (cal2.getTimeInMillis() / 1000L == unix1) {
73 | result = i + 1;
74 | break;
75 | }
76 | }
77 | return result;
78 | }
79 | }
--------------------------------------------------------------------------------
/app/src/main/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/java/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/java/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/java/com/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/java/com/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/java/com/gsh/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.UiThread;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.util.Log;
7 | import android.view.MotionEvent;
8 | import android.view.View;
9 | import android.widget.ImageView;
10 | import android.widget.RelativeLayout;
11 | import android.widget.TextView;
12 |
13 | import calendar.bigkoo.pickerview.YMDPickerView;
14 | import com.gsh.calendar.util.DateUtil;
15 | import com.gsh.calendar.util.Utils;
16 | import com.gsh.calendar.widget.CollapseScrollView;
17 |
18 | import java.util.Calendar;
19 |
20 | public class MainActivity extends AppCompatActivity implements View.OnClickListener {
21 | private static final String TAG = "MainActivity-->>";
22 |
23 | private CollapseScrollView collapseScrollView;
24 |
25 | /**
26 | * 帮助内容左上角的小箭头
27 | */
28 | private RelativeLayout calendarTitleArrowUp;
29 |
30 | /**
31 | * 帮助内容(问号点开后显示)
32 | */
33 | private TextView calendarHelpContent;
34 |
35 | /**
36 | * 今天按钮
37 | */
38 | private ImageView calendarTitleToday;
39 |
40 | /**
41 | * 标题日期 比如: 2015年10月
42 | */
43 | private TextView calendarTitleDate;
44 |
45 | //pager允许滑动的最小时间: 1443974400 ==2015/10/05 00:00
46 | private int leftUnix = 1443974400;
47 | //pager允许滑动的最大时间:1467648000 ==2016/7/05 00:00
48 | private int rightUnix = 0;
49 |
50 |
51 | @Override
52 | protected void onCreate(Bundle savedInstanceState) {
53 | super.onCreate(savedInstanceState);
54 | setContentView(R.layout.activity_main);
55 | initLayout();
56 | initData();
57 | }
58 |
59 | private void initLayout() {
60 | collapseScrollView = (CollapseScrollView) findViewById(R.id.collapse_scrollview_layout);
61 |
62 | findViewById(R.id.calendar_title_content).setOnClickListener(this);
63 | findViewById(R.id.calendar_title_help).setOnClickListener(this);
64 | calendarTitleToday = (ImageView) findViewById(R.id.calendar_title_today);
65 | calendarTitleToday.setOnClickListener(this);
66 | findViewById(R.id.title_back).setOnClickListener(this);
67 | calendarTitleArrowUp = (RelativeLayout) findViewById(R.id.calendar_title_arrow_up);
68 | calendarHelpContent = (TextView) findViewById(R.id.calendar_help_content);
69 | calendarTitleDate = (TextView) findViewById(R.id.calendar_title_date);
70 | }
71 |
72 | private void initData() {
73 | setTestData();
74 | //初始化"今天"按钮的显示状态
75 | setToDayIconState(collapseScrollView.cellSelectedIsToday());
76 | setDateTitle(collapseScrollView.getSelectedUnix());
77 | Utils.setTitleColor(this, collapseScrollView.getSelectedDayType());
78 | }
79 |
80 |
81 | private void setTestData() {
82 | //Damontodo 测试
83 | Calendar calendar = Calendar.getInstance();
84 | calendar.add(Calendar.MONTH,20);
85 | rightUnix = (int) (calendar.getTimeInMillis()/1000L);
86 | Log.d(TAG, "设置测试数据-->>setTestData");
87 | collapseScrollView.setPagerBoundary(leftUnix, rightUnix);
88 |
89 | }
90 |
91 | /**
92 | * 设置标题日期的内容
93 | *
94 | * @param selectedUnix 选中日期的unix
95 | */
96 | @UiThread
97 | public void setDateTitle(long selectedUnix) {
98 | calendarTitleDate.setText(DateUtil.formatTime0(selectedUnix, this));
99 | }
100 |
101 | /**
102 | * @param isShow true:显示"今天"按钮, false: 隐藏
103 | */
104 | @UiThread
105 | public void setToDayIconState(boolean isShow) {
106 | calendarTitleToday.setVisibility(isShow ? View.INVISIBLE : View.VISIBLE);
107 | }
108 |
109 | /**
110 | * Called when a view has been clicked.
111 | *
112 | * @param v The view that was clicked.
113 | */
114 | @Override
115 | public void onClick(View v) {
116 | switch (v.getId()) {
117 | case R.id.title_back:
118 | Log.d(TAG, "单击了日历标题的 返回按钮");
119 | finish();
120 | break;
121 | case R.id.calendar_title_content:
122 | Log.d(TAG, "单击了日历标题的 内容按钮");
123 | showYMPicker();
124 | break;
125 | case R.id.calendar_title_today:
126 | Log.d(TAG, "单击了日历标题的 今天按钮");
127 | collapseScrollView.moveToToday();
128 | break;
129 | case R.id.calendar_title_help:
130 | Log.d(TAG, "单击了日历标题的 问号按钮");
131 | toggleHelpLayout(true);
132 | break;
133 |
134 | default:
135 | //don't forget default
136 | break;
137 | }
138 | }
139 |
140 | @Override
141 | public boolean dispatchTouchEvent(MotionEvent ev) {
142 | if (helpLayoutIsShow()) {
143 | if (ev.getAction() == MotionEvent.ACTION_UP) {
144 | toggleHelpLayout(false);
145 | }
146 | return false;
147 | }
148 | return super.dispatchTouchEvent(ev);
149 | }
150 |
151 | /**
152 | * @return true: 帮助布局已显示 false: 帮助布局隐藏
153 | */
154 | private boolean helpLayoutIsShow() {
155 | return calendarTitleArrowUp.getVisibility() == View.VISIBLE;
156 | }
157 |
158 | /**
159 | * @param isShow true:显示帮助布局, false: 不显示
160 | */
161 | private void toggleHelpLayout(boolean isShow) {
162 | calendarTitleArrowUp.setVisibility(isShow ? View.VISIBLE : View.GONE);
163 | calendarHelpContent.setVisibility(isShow ? View.VISIBLE : View.GONE);
164 | }
165 |
166 | private void showYMPicker() {
167 | final long selectTime = collapseScrollView.getSelectedUnix();
168 | String yearMonth = getString(R.string.year_moth);
169 | YMDPickerView ymdPickerView = new YMDPickerView(this, YMDPickerView.Type.YEAR_MONTH, yearMonth, selectTime);
170 | ymdPickerView.setOnYMDSelectListener(new YMDPickerView.OnYMDSelectListener() {
171 | @Override
172 | public void onYMDSelect(Calendar calendar, int year, int month, int day) {
173 | }
174 |
175 | @Override
176 | public void onYMDSelect(Calendar calendar, int year, int month) {
177 | //点击确定时,调用
178 | // long unix = (calendar.getTimeInMillis() / 1000L);
179 | // Log.d(TAG, "选择的是,year-->>" + year + ", month-->>" + month+", unix-->>"+unix+", selectTime-->>"+selectTime);
180 | collapseScrollView.moveToYearMonth(year, month);
181 | }
182 | });
183 | ymdPickerView.setMinTime(leftUnix);
184 | ymdPickerView.setMaxTime(rightUnix);
185 | ymdPickerView.show();
186 | }
187 | }
188 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/MensColorDetailActivity.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | /**
7 | * Created by damon on 1/19/16.
8 | * Activity
9 | */
10 | public class MensColorDetailActivity extends Activity {
11 |
12 | private final String TAG = "MensColorDetailActivity";
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/adapter/CalendarAdapter.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.adapter;
2 |
3 |
4 | import android.support.v4.view.PagerAdapter;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | /**
9 | * Created by damon on 1/5/16.
10 | * 日历视图的适配器
11 | */
12 | public class CalendarAdapter extends PagerAdapter {
13 | private final String TAG = "CalendarViewAdapter";
14 | public v[] views;
15 |
16 | private String type;
17 |
18 | public String getType() {
19 | return type;
20 | }
21 |
22 | public void setType(String type) {
23 | this.type = type;
24 | }
25 |
26 | public CalendarAdapter(v[] views) {
27 | super();
28 | this.views = views;
29 | }
30 |
31 | @Override
32 | public Object instantiateItem(ViewGroup container, int position) {
33 | View view = views[position];
34 | int childCount = container.getChildCount();
35 | if (view != null) {
36 | container.addView(view);
37 | // Log.d(TAG, "type-->>" + type + ", 日历CalendarAdapter-->>添加--子View>>" + position + ", childCount-->>" + childCount + ", view.getId-->>" + view.getId());
38 | }
39 | return view;
40 | }
41 |
42 | @Override
43 | public int getCount() {
44 | return views.length;
45 | }
46 |
47 | @Override
48 | public boolean isViewFromObject(View view, Object object) {
49 | return view == object;
50 | }
51 |
52 | @Override
53 | public void destroyItem(ViewGroup container, int position, Object object) {
54 | View view = views[position];
55 | if (view != null) {
56 | // Log.d(TAG, "type-->>" + type + ", 日历CalendarAdapter-->>移除子View-->>" + position + ", childCount-->>" + container.getChildCount() + ", view.getId-->>" + view.getId());
57 | container.removeView(view);
58 | }
59 | }
60 |
61 | @Override
62 | public void notifyDataSetChanged() {
63 | super.notifyDataSetChanged();
64 | }
65 |
66 | @Override
67 | public int getItemPosition(Object object) {
68 | return super.getItemPosition(object);
69 | }
70 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/data/CalendarOneScreenDataMonth.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.data;
2 |
3 | import android.support.annotation.IntRange;
4 | import android.support.annotation.NonNull;
5 |
6 | import com.gsh.calendar.widget.CalendarConstant;
7 |
8 | import java.io.Serializable;
9 | import java.util.HashMap;
10 | import java.util.Map;
11 |
12 | /**
13 | * Created by damon on 1/8/16.
14 | * 日历月视图 一屏幕的数据
15 | */
16 | public class CalendarOneScreenDataMonth implements Serializable {
17 |
18 | private int year;
19 |
20 | @CalendarConstant.Month
21 | private int month;
22 |
23 | /**
24 | * 选中的天的位置
25 | */
26 | @IntRange(from = 1, to = 42)
27 | private int selectedPosition;
28 |
29 | /**
30 | * 只有在CalendarConstant.CALENDAR_START --经期最后一天所在的月份 的范围内才是有效的
31 | */
32 | @CalendarConstant.PagerValidState
33 | private int invalidState;
34 |
35 | /**
36 | * key: 为约定好的7列6行
37 | * 只提供get方法, 不需要判断为空
38 | */
39 | @NonNull
40 | Map mapDay = new HashMap<>();
41 |
42 | public int getYear() {
43 | return year;
44 | }
45 |
46 | public void setYear(int year) {
47 | this.year = year;
48 | }
49 |
50 | public int getMonth() {
51 | return month;
52 | }
53 |
54 | public void setMonth(int month) {
55 | this.month = month;
56 | }
57 |
58 | @NonNull
59 | public Map getMapDay() {
60 | return mapDay;
61 | }
62 |
63 | public int getSelectedPosition() {
64 | return selectedPosition;
65 | }
66 |
67 | public void setSelectedPosition(int selectedPosition) {
68 | this.selectedPosition = selectedPosition;
69 | }
70 |
71 | public int getInvalidState() {
72 | return invalidState;
73 | }
74 |
75 | public void setInvalidState(int invalidState) {
76 | this.invalidState = invalidState;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/data/CalendarOneScreenDataWeek.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.data;
2 |
3 | import android.support.annotation.IntRange;
4 | import android.support.annotation.NonNull;
5 |
6 | import com.gsh.calendar.widget.CalendarConstant;
7 |
8 | import java.io.Serializable;
9 | import java.util.HashMap;
10 | import java.util.Map;
11 |
12 | /**
13 | * Created by damon on 1/8/16.
14 | * 日历周视图 一屏幕的数据
15 | */
16 | public class CalendarOneScreenDataWeek implements Serializable {
17 |
18 | private int year;
19 |
20 | /**
21 | * 一年当中的第几周
22 | */
23 | private int weekOfYear;
24 |
25 | /**
26 | * 选中的天的位置
27 | */
28 | @IntRange(from = 1, to = 7)
29 | private int selectedPosition;
30 | /**
31 | * 只有在CalendarConstant.CALENDAR_START --经期最后一天所在的月份 的范围内才是有效的
32 | */
33 | @CalendarConstant.PagerValidState
34 | private int invalidState;
35 |
36 | /**
37 | * key: 为约定好的7列1行
38 | * 只提供get方法, 不需要判断为空
39 | */
40 | @NonNull
41 | Map mapDay = new HashMap<>();
42 |
43 | public CalendarOneScreenDataWeek() {
44 | }
45 |
46 | public int getYear() {
47 | return year;
48 | }
49 |
50 | public void setYear(int year) {
51 | this.year = year;
52 | }
53 |
54 | public int getWeekOfYear() {
55 | return weekOfYear;
56 | }
57 |
58 | public void setWeekOfYear(int weekOfYear) {
59 | this.weekOfYear = weekOfYear;
60 | }
61 |
62 | @NonNull
63 | public Map getMapDay() {
64 | return mapDay;
65 | }
66 |
67 | public int getSelectedPosition() {
68 | return selectedPosition;
69 | }
70 |
71 | public void setSelectedPosition(int selectedPosition) {
72 | this.selectedPosition = selectedPosition;
73 | }
74 |
75 | public int getInvalidState() {
76 | return invalidState;
77 | }
78 |
79 | public void setInvalidState(int invalidState) {
80 | this.invalidState = invalidState;
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/data/DateData.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.data;
2 |
3 | import com.gsh.calendar.widget.CalendarConstant;
4 |
5 | import java.io.Serializable;
6 | import java.util.Date;
7 |
8 | /**
9 | * Created by damon on 1/7/16.
10 | */
11 | public class DateData implements Serializable {
12 |
13 | private int year;
14 | @CalendarConstant.Month
15 | private int month;
16 | private int day;
17 | @CalendarConstant.Week
18 | private int week;
19 |
20 | /**
21 | * 该时间点的unix时间戳(作用了只是为了方便获取)
22 | * 对准到00:00点的unix时间戳
23 | */
24 | private long unix;
25 |
26 | public int getYear() {
27 | return year;
28 | }
29 |
30 | public void setYear(int year) {
31 | this.year = year;
32 | }
33 |
34 | public int getMonth() {
35 | return month;
36 | }
37 |
38 | public void setMonth(int month) {
39 | this.month = month;
40 | }
41 |
42 | public int getDay() {
43 | return day;
44 | }
45 |
46 | public void setDay(int day) {
47 | this.day = day;
48 | }
49 |
50 | public long getUnix() {
51 | return unix;
52 | }
53 |
54 | public void setUnix(long unix) {
55 | this.unix = unix;
56 | }
57 |
58 |
59 | public int getWeek() {
60 | return week;
61 | }
62 |
63 | public void setWeek(int week) {
64 | this.week = week;
65 | }
66 |
67 | @Override
68 | public String toString() {
69 | return "DateData{" +
70 | "year=" + year +
71 | ", month=" + month +
72 | ", day=" + day +
73 | ", week=" + week +
74 | ", unix=" + unix +
75 | ", unix格式化=" + new Date(unix * 1000L) +
76 | '}';
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/data/DayData.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.data;
2 |
3 | import com.gsh.calendar.widget.CalendarConstant;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by damon on 1/7/16.
9 | * 日单元格的数据
10 | */
11 | public class DayData extends DateData implements Serializable {
12 |
13 |
14 | /**
15 | * text的Top的文本
16 | */
17 | @CalendarConstant.TopType
18 | private int topType;
19 |
20 | /**
21 | * text的Bottom是否有圆点
22 | */
23 | private boolean hasCircleBottom;
24 |
25 | /**
26 | * 日历中 "日" 的类型
27 | */
28 | @CalendarConstant.DayType
29 | private int dayType;
30 |
31 | /**
32 | * 日历中 "日" 是否可以点击
33 | * true: 可点击
34 | * false: 不可点击,且字体颜色为灰色
35 | */
36 | private boolean isClickable;
37 |
38 | public boolean isHasCircleBottom() {
39 | return hasCircleBottom;
40 | }
41 |
42 | public void setHasCircleBottom(boolean hasCircleBottom) {
43 | this.hasCircleBottom = hasCircleBottom;
44 | }
45 |
46 | public int getTopType() {
47 | return topType;
48 | }
49 |
50 | public void setTopType(int topType) {
51 | this.topType = topType;
52 | }
53 | @CalendarConstant.DayType
54 | public int getDayType() {
55 | return dayType;
56 | }
57 |
58 | public void setDayType(int dayType) {
59 | this.dayType = dayType;
60 | }
61 |
62 | public boolean isClickable() {
63 | return isClickable;
64 | }
65 |
66 | public void setClickable(boolean clickable) {
67 | isClickable = clickable;
68 | }
69 |
70 | @Override
71 | public String toString() {
72 | return "DayData{" +
73 | "topType=" + topType +
74 | ", hasCircleBottom=" + hasCircleBottom +
75 | ", dayType=" + dayType +
76 | ", isClickable=" + isClickable +
77 | "} " + super.toString();
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/util/Utils.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.util;
2 |
3 | import android.content.Context;
4 | import android.graphics.drawable.Drawable;
5 | import android.support.annotation.UiThread;
6 | import android.view.MotionEvent;
7 |
8 | import com.gsh.calendar.MainActivity;
9 | import com.gsh.calendar.R;
10 | import com.gsh.calendar.widget.CalendarConstant;
11 |
12 | /**
13 | * Created by damon on 1/5/16.
14 | */
15 | public class Utils {
16 | public static int pxValue2dipValue(Context context, float pxValue) {
17 | float scale = context.getResources().getDisplayMetrics().density;
18 | return (int) (pxValue / scale + 0.5f);
19 | }
20 |
21 | public static int dipValue2PxValue(Context context, float dipValue) {
22 | float scale = context.getResources().getDisplayMetrics().density;
23 | return (int) (dipValue * scale + 0.5f);
24 | }
25 |
26 | /**
27 | * 将触摸的Action转换成String
28 | *
29 | * @param action
30 | * @return
31 | */
32 | public static String actionToString(int action) {
33 | switch (action) {
34 | case MotionEvent.ACTION_DOWN:
35 | return "ACTION_DOWN";
36 | case MotionEvent.ACTION_UP:
37 | return "ACTION_UP";
38 | case MotionEvent.ACTION_CANCEL:
39 | return "ACTION_CANCEL";
40 | case MotionEvent.ACTION_OUTSIDE:
41 | return "ACTION_OUTSIDE";
42 | case MotionEvent.ACTION_MOVE:
43 | return "ACTION_MOVE";
44 | case MotionEvent.ACTION_HOVER_MOVE:
45 | return "ACTION_HOVER_MOVE";
46 | case MotionEvent.ACTION_SCROLL:
47 | return "ACTION_SCROLL";
48 | case MotionEvent.ACTION_HOVER_ENTER:
49 | return "ACTION_HOVER_ENTER";
50 | case MotionEvent.ACTION_HOVER_EXIT:
51 | return "ACTION_HOVER_EXIT";
52 | }
53 | int index = (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
54 | switch (action & MotionEvent.ACTION_MASK) {
55 | case MotionEvent.ACTION_POINTER_DOWN:
56 | return "ACTION_POINTER_DOWN(" + index + ")";
57 | case MotionEvent.ACTION_POINTER_UP:
58 | return "ACTION_POINTER_UP(" + index + ")";
59 | default:
60 | return Integer.toString(action);
61 | }
62 | }
63 |
64 | /**
65 | * 更新title的相关颜色
66 | *
67 | * @param mainActivity mainActivity
68 | * @param dayType 选中天的类型
69 | */
70 | @UiThread
71 | public static void setTitleColor(MainActivity mainActivity, @CalendarConstant.DayType int dayType) {
72 |
73 | boolean isSelected = true;
74 | int bgColor = 0;
75 | int bgBorderColor = 0;
76 | Drawable bgDrawable = null;
77 | switch (dayType) {
78 | case CalendarConstant.DAY_TYPE_SAFE:
79 | isSelected = false;
80 | bgDrawable = mainActivity.getResources().getDrawable(R.drawable.shape_border_bg);
81 | bgColor = mainActivity.getResources().getColor(R.color.color_c3);
82 | break;
83 | case CalendarConstant.DAY_TYPE_MENS_START:
84 | case CalendarConstant.DAY_TYPE_MENS_END:
85 | case CalendarConstant.DAY_TYPE_MENS_ING:
86 | case CalendarConstant.DAY_TYPE_MENS_ONLYONE:
87 | bgColor = mainActivity.getResources().getColor(R.color.color_mens);
88 | bgBorderColor = mainActivity.getResources().getColor(R.color.color_mens);
89 |
90 | break;
91 | case CalendarConstant.DAY_TYPE_EASY_START:
92 | case CalendarConstant.DAY_TYPE_EASY_END:
93 | case CalendarConstant.DAY_TYPE_EASY_ING:
94 | case CalendarConstant.DAY_TYPE_EASY_ONLYONE0:
95 | bgColor = mainActivity.getResources().getColor(R.color.color_easy);
96 | bgBorderColor = mainActivity.getResources().getColor(R.color.color_easy);
97 | break;
98 | case CalendarConstant.DAY_TYPE_EASY_ONLYONE1:
99 | case CalendarConstant.DAY_TYPE_OVULATE:
100 | bgColor = mainActivity.getResources().getColor(R.color.color_ovulation);
101 | bgBorderColor = mainActivity.getResources().getColor(R.color.color_ovulation);
102 | break;
103 | }
104 | //返回键
105 | mainActivity.findViewById(R.id.title_back).setSelected(isSelected);
106 | //日历内容
107 | mainActivity.findViewById(R.id.calendar_title_date).setSelected(isSelected);
108 | //向下箭头("日历内容"右侧)
109 | mainActivity.findViewById(R.id.calendar_title_down).setSelected(isSelected);
110 | //今天按钮
111 | mainActivity.findViewById(R.id.calendar_title_today).setSelected(isSelected);
112 | //帮助按钮
113 | mainActivity.findViewById(R.id.calendar_title_help).setSelected(isSelected);
114 |
115 | mainActivity.findViewById(R.id.sunday).setSelected(isSelected);
116 | mainActivity.findViewById(R.id.monday).setSelected(isSelected);
117 | mainActivity.findViewById(R.id.tuesday).setSelected(isSelected);
118 | mainActivity.findViewById(R.id.wednesday).setSelected(isSelected);
119 | mainActivity.findViewById(R.id.thursday).setSelected(isSelected);
120 | mainActivity.findViewById(R.id.friday).setSelected(isSelected);
121 | mainActivity.findViewById(R.id.saturday).setSelected(isSelected);
122 |
123 | //title布局颜色
124 | mainActivity.findViewById(R.id.calendar_title_rl).setBackgroundColor(bgColor);
125 | //week布局颜色
126 | mainActivity.findViewById(R.id.calendar_week_ll).setBackgroundColor(bgColor);
127 | if (bgDrawable != null) {
128 | //安全期
129 | mainActivity.findViewById(R.id.week_border).setBackground(bgDrawable);
130 | } else {
131 | //非安全期
132 | mainActivity.findViewById(R.id.week_border).setBackgroundColor(bgBorderColor);
133 | }
134 | }
135 |
136 | }
137 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/widget/CalendarConstant.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.widget;
2 |
3 | import android.support.annotation.IntDef;
4 |
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.util.Calendar;
8 |
9 | /**
10 | * Created by damon on 1/8/16.
11 | */
12 | public class CalendarConstant {
13 |
14 | /**
15 | * 日历(月视图)的开始时间点: 2010/01/01 00:00 ==1262275200
16 | */
17 | public static final int CALENDAR_START_MONTH = 1262275200;
18 |
19 | /**
20 | * 日历(周视图)的开始时间点: 2009/12/27 00:00 ==1261843200
21 | */
22 | public static final int CALENDAR_START_WEEK = 1261843200;
23 |
24 | //测试 2015/10/01 00:00
25 | // public static final int CALENDAR_START = 1443628800;
26 |
27 | /**
28 | * TOTAL_COL: 7列
29 | **/
30 | public static final int TOTAL_COL = Calendar.SATURDAY;
31 |
32 | /**
33 | * TOTAL_ROW_MONTH: 6行
34 | **/
35 | public static final int TOTAL_ROW_MONTH = 6;
36 | /**
37 | * 周视图行数
38 | */
39 | public static final int TOTAL_ROW_WEEK = 1;
40 |
41 |
42 | /**
43 | * 安全期
44 | */
45 | public static final int DAY_TYPE_SAFE = 100;
46 | /**
47 | * 月经开始
48 | */
49 | public static final int DAY_TYPE_MENS_START = 101;
50 |
51 | /**
52 | * 月经进行中...
53 | */
54 | public static final int DAY_TYPE_MENS_ING = 102;
55 | /**
56 | * 月经结束
57 | */
58 | public static final int DAY_TYPE_MENS_END = 103;
59 |
60 | /**
61 | * 月经只有一天
62 | */
63 | public static final int DAY_TYPE_MENS_ONLYONE = 104;
64 |
65 | /**
66 | * 易孕开始
67 | */
68 | public static final int DAY_TYPE_EASY_START = 105;
69 |
70 | /**
71 | * 易孕中的非排卵期....
72 | */
73 | public static final int DAY_TYPE_EASY_ING = 106;
74 |
75 | /**
76 | * 易孕结束
77 | */
78 | public static final int DAY_TYPE_EASY_END = 107;
79 |
80 | /**
81 | * 排卵期
82 | */
83 | public static final int DAY_TYPE_OVULATE = 108;
84 |
85 | /**
86 | * 易孕期只有一天(且不是排卵日)
87 | */
88 | public static final int DAY_TYPE_EASY_ONLYONE0 = 109;
89 | /**
90 | * 易孕期只有一天(且是排卵日)
91 | */
92 | public static final int DAY_TYPE_EASY_ONLYONE1 = 110;
93 |
94 | @IntDef({DAY_TYPE_SAFE, DAY_TYPE_MENS_START, DAY_TYPE_MENS_ING, DAY_TYPE_MENS_END, DAY_TYPE_MENS_ONLYONE, DAY_TYPE_EASY_START, DAY_TYPE_EASY_ING, DAY_TYPE_EASY_END, DAY_TYPE_OVULATE, DAY_TYPE_EASY_ONLYONE0, DAY_TYPE_EASY_ONLYONE1})
95 | @Retention(RetentionPolicy.SOURCE)
96 | public @interface DayType {
97 | }
98 |
99 | /**
100 | * "日"上方文字 "今天"
101 | */
102 | public static final int TOP_TYPE_TODAY = 0;
103 | /**
104 | * "日"上方文字 月份 比如:"3月"
105 | */
106 | public static final int TOP_TYPE_FIRST_DAY = 1;
107 | /**
108 | * "日"上方文字 没有
109 | */
110 | public static final int TOP_TYPE_NONE = -1;
111 |
112 | @IntDef({TOP_TYPE_TODAY, TOP_TYPE_FIRST_DAY})
113 | @Retention(RetentionPolicy.SOURCE)
114 | public @interface TopType {
115 | }
116 |
117 | /**
118 | * 日历 当前页有效
119 | */
120 | public static final int PAGER_VALID = 0;
121 | /**
122 | * 日历 当前页无效, 左边越界了
123 | */
124 | public static final int PAGER_INVALID_LEFT = 1;
125 | /**
126 | * 日历 当前页无效, 右边越界了
127 | */
128 | public static final int PAGER_INVALID_RIGHT = 2;
129 |
130 | @IntDef({PAGER_VALID, PAGER_INVALID_LEFT, PAGER_INVALID_RIGHT})
131 | @Retention(RetentionPolicy.SOURCE)
132 | public @interface PagerValidState {
133 | }
134 |
135 | /**
136 | * 月份枚举
137 | */
138 | @IntDef({Calendar.JANUARY, Calendar.FEBRUARY, Calendar.MARCH, Calendar.APRIL, Calendar.MAY, Calendar.JUNE, Calendar.JULY, Calendar.AUGUST, Calendar.SEPTEMBER, Calendar.OCTOBER, Calendar.NOVEMBER, Calendar.DECEMBER})
139 | @Retention(RetentionPolicy.SOURCE)
140 | public @interface Month {
141 | }
142 |
143 | /**
144 | * 星期枚举
145 | */
146 | @IntDef({Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY, Calendar.FRIDAY, Calendar.SATURDAY, Calendar.SUNDAY})
147 | @Retention(RetentionPolicy.SOURCE)
148 | public @interface Week {
149 | }
150 |
151 | /**
152 | * cell的背景颜色的top和Bottom的偏移
153 | */
154 | public static final float BACKGROUND_DELTA0 = 0.2F;
155 | /**
156 | * cell 绘制圆弧相对cell背景颜色圆心的偏移
157 | */
158 | public static final float BACKGROUND_DELTA1 = 0.1F;
159 |
160 |
161 | /**
162 | * 左侧圆弧的起始位置
163 | */
164 | public static final float START_ANGLE_LEFT = 90F;
165 | /**
166 | * 右侧圆弧的起始位置
167 | */
168 | public static final float START_ANGLE_RIGHT = 270F;
169 | /**
170 | * 圆弧sweep的度数
171 | */
172 | public static final float SWEEP_ANGLE = 180F;
173 | /**
174 | * 绘制事件的圆点
175 | */
176 | public static final float EVENT_SIGN_RADIUS = 8F;
177 |
178 | /**
179 | * 该数组正好和日历中的显示一样的
180 | * 注意: 列对应的Calendar.SUNDAY--Calendar.SATURDAY(第一列没有用)
181 | */
182 | public final static int[][] CELL_ARRAY_MONTH = new int[][]{
183 | {0, 1, 2, 3, 4, 5, 6, 7},
184 | {0, 8, 9, 10, 11, 12, 13, 14},
185 | {0, 15, 16, 17, 18, 19, 20, 21},
186 | {0, 22, 23, 24, 25, 26, 27, 28},
187 | {0, 29, 30, 31, 32, 33, 34, 35},
188 | {0, 36, 37, 38, 39, 40, 41, 42}
189 | };
190 | /**
191 | * 该数组正好和日历中的显示一样的
192 | * 注意: 列对应的Calendar.SUNDAY--Calendar.SATURDAY(第一列没有用)
193 | */
194 | public final static int[][] CELL_ARRAY_WEEK = new int[][]{
195 | {0, 1, 2, 3, 4, 5, 6, 7}
196 | };
197 |
198 | /**
199 | * 通过位置获得行数
200 | *
201 | * @param position 位置 比如:28;
202 | * @return
203 | */
204 | public static int getRowFromPosition(int position, boolean isMonth) {
205 | int row = 0;
206 | if (isMonth) {
207 | for (int i = 0; i < 6; i++) {
208 | for (int j = 0; j < 8; j++) {
209 | if (CELL_ARRAY_MONTH[i][j] == position) {
210 | return i;
211 | }
212 | }
213 | }
214 | } else {
215 | return 0;
216 | }
217 | return row;
218 | }
219 | }
220 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/widget/CalendarViewPager.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.widget;
2 |
3 | import android.content.Context;
4 | import android.graphics.Canvas;
5 | import android.support.v4.view.ViewPager;
6 | import android.util.AttributeSet;
7 |
8 | /**
9 | * Created by damon on 1/6/16.
10 | */
11 | public class CalendarViewPager extends ViewPager {
12 | private final String TAG = "CalendarViewPager";
13 |
14 | public CalendarViewPager(Context context) {
15 | super(context);
16 | init();
17 | }
18 |
19 | public CalendarViewPager(Context context, AttributeSet attrs) {
20 | super(context, attrs);
21 | init();
22 | }
23 |
24 | private void init() {
25 | }
26 |
27 | @Override
28 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
29 | super.onMeasure(widthMeasureSpec, heightMeasureSpec);
30 | // Log.d(TAG, "onMeasure-->>");
31 | }
32 |
33 | @Override
34 | protected void onLayout(boolean changed, int l, int t, int r, int b) {
35 | super.onLayout(changed, l, t, r, b);
36 | // Log.d(TAG, "onLayout-->>");
37 | }
38 |
39 | @Override
40 | protected void onDraw(Canvas canvas) {
41 | super.onDraw(canvas);
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/gsh/calendar/widget/InnerScrollView.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar.widget;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.MotionEvent;
6 | import android.widget.ScrollView;
7 |
8 | public class InnerScrollView extends ScrollView {
9 | private final String TAG = "InnerScrollView";
10 |
11 | /**
12 | * 判断是否需要拦截
13 | */
14 | public boolean isIntercept = false;
15 |
16 | public InnerScrollView(Context context, AttributeSet attrs) {
17 | super(context, attrs);
18 | }
19 |
20 | @Override
21 | public boolean onInterceptTouchEvent(MotionEvent ev) {
22 | // Log.d(TAG, "onInterceptTouchEvent-->>MotionEvent-->>" + Utils.actionToString(ev.getAction()) + ", isIntercept-->>" + isIntercept);
23 | return super.onInterceptTouchEvent(ev);
24 | }
25 |
26 | @Override
27 | public boolean onTouchEvent(MotionEvent ev) {
28 | // Log.d(TAG, "onTouchEvent-->>MotionEvent-->>" + Utils.actionToString(ev.getAction()) + ", isIntercept-->>" + isIntercept + ", getScrollY-->>" + getScrollY());
29 | boolean isFuck = isIntercept;
30 | if (ev.getAction() == MotionEvent.ACTION_UP) {
31 | isIntercept = false;
32 | }
33 | if (isFuck) {
34 | return super.onTouchEvent(ev);
35 | } else {
36 | return false;
37 | }
38 | }
39 |
40 | @Override
41 | public boolean dispatchTouchEvent(MotionEvent ev) {
42 | // Log.d(TAG, "dispatchTouchEvent-->>MotionEvent-->>" + Utils.actionToString(ev.getAction()) + ", isIntercept-->>" + isIntercept);
43 | super.dispatchTouchEvent(ev);
44 | return true;
45 | }
46 |
47 | @Override
48 | protected void onLayout(boolean changed, int l, int t, int r, int b) {
49 | super.onLayout(changed, l, t, r, b);
50 | // Log.d(TAG, "onLayout-->>getWidth-->>" + getWidth() + ", height-->>" + getHeight());
51 | }
52 | }
--------------------------------------------------------------------------------
/app/src/main/res/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/res/color/selector_title_date_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/color/selector_week_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calendar_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calendar_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_bg_fertile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_bg_fertile.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_bg_period.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_bg_period.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_color5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_color5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_down_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_down_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_down_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_help_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_help_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_help_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_help_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_menses3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_menses3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_next.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_today_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_today_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_button_today_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_button_today_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/calender_help_icon_sanjiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/calender_help_icon_sanjiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/public_button_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/public_button_back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/public_button_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/public_button_back_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/public_photo_yingying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xhdpi/public_photo_yingying.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calendar_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calendar_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_bg_fertile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_bg_fertile.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_bg_period.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_bg_period.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_color5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_color5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_down_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_down_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_down_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_help_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_help_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_help_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_help_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_menses3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_menses3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_next.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_today_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_today_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_button_today_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_button_today_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calender_help_icon_sanjiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/calender_help_icon_sanjiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/public_button_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/public_button_back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/public_button_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/public_button_back_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/public_photo_yingying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxhdpi/public_photo_yingying.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/.DS_Store
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calendar_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calendar_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_bg_fertile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_bg_fertile.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_bg_period.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_bg_period.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_amount5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_amount5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color4_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color4_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color4_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color4_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color5_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color5_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_color5_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_color5_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_down_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_down_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_down_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_help_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_help_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_help_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_help_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_menses3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_menses3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_next.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain1_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain1_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain1_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain1_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain2_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain2_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain2_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain2_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain3_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain3_normal.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_pain3_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_pain3_select.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_today_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_today_black.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_button_today_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_button_today_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/calender_help_icon_sanjiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/calender_help_icon_sanjiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/public_button_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/public_button_back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/public_button_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/public_button_back_white.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/public_photo_yingying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/drawable-xxxhdpi/public_photo_yingying.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_back.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_help.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_help_icon_sanjiao.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_today.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_border_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_easy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_easy_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_mens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_mens0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_mens0_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_mens_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_ovu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_ovu_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/include_border_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
8 | #7F000000
9 |
10 |
11 | #7F000000
12 |
13 | #7F000000
14 |
15 | #4CC0C0C0
16 | #FF7D48
17 |
18 | #FFFFFF
19 | #F4F4F4
20 |
21 | #7FD8D8D8
22 |
23 | #99FD9DC2
24 |
25 |
26 | #FD9DC2
27 |
28 | #FF7D48
29 |
30 | #E64618
31 |
32 | #99FD9DC2
33 |
34 | #FFC5AD
35 |
36 | #FDF2E6
37 |
38 | #FFC5AD
39 |
40 |
41 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 |
7 | 50dp
8 |
9 | 22dp
10 |
11 |
12 |
13 |
14 |
15 |
16 | 8dp
17 | 12dp
18 | 16dp
19 | 20dp
20 | 24dp
21 | 32dp
22 | 4dp
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Lemon_Shaohua
3 | 今天
4 | Settings
5 | 1月
6 | 2月
7 | 3月
8 | 4月
9 | 5月
10 | 6月
11 | 7月
12 | 8月
13 | 9月
14 | 10月
15 | 11月
16 | 12月
17 | "日"
18 | "一"
19 | "二"
20 | "三"
21 | "四"
22 | "五"
23 | "六"
24 | "年"
25 | "小张"
26 | "小李"
27 | "小王"
28 | "小赵"
29 | "刚从厨房出来去楼下买菜,一男的问我用的什么香水,身上那么香?我说“王守义十三香!”"
30 |
31 | "年月"
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/test/java/calendar/lemon/calendar/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/app/src/test/java/calendar/lemon/calendar/NewDateDifference.java:
--------------------------------------------------------------------------------
1 | package com.gsh.calendar;
2 |
3 | import java.util.Calendar;
4 | import java.util.Date;
5 |
6 | public class NewDateDifference {
7 |
8 | public static void main(String[] args) {
9 |
10 | test0();
11 | }
12 |
13 | public static void test0() {
14 |
15 | // System.out.println("language-->>" + getContext().getResources().getConfiguration().locale.getCountry());
16 | // System.out.println("timeZone name-->>" + TimeZone.getDefault().getDisplayName());
17 | // System.out.println("timeZone offset-->>" + TimeZone.getDefault().getRawOffset());
18 | String[] insert1 = new String[]{"3", "11", "2015"};
19 | String[] insert2 = new String[]{"20", "3", "2016"};
20 |
21 |
22 | Calendar cal = Calendar.getInstance();
23 |
24 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
25 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
26 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
27 | Date firstDate = cal.getTime();
28 |
29 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
30 | cal.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
31 | cal.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
32 | Date secondDate = cal.getTime();
33 |
34 |
35 | long diff = secondDate.getTime() - firstDate.getTime();
36 |
37 | System.out.println("Days0: " + diff / 1000 / 60 / 60 / 24);
38 | System.out.println("Days1: " + getDiffDay(insert1, insert2));
39 | }
40 |
41 | public static int getDiffDay(String[] insert1, String[] insert2) {
42 | Calendar cal = Calendar.getInstance();
43 |
44 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
45 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
46 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
47 | cal.set(Calendar.HOUR_OF_DAY, 0);
48 | cal.set(Calendar.MINUTE, 0);
49 | cal.set(Calendar.SECOND, 0);
50 | cal.set(Calendar.MILLISECOND, 0);
51 |
52 | int unix1 = (int) (cal.getTimeInMillis() / 1000L);
53 |
54 | Calendar cal2 = Calendar.getInstance();
55 |
56 | cal2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
57 | cal2.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
58 | cal2.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
59 | cal2.set(Calendar.HOUR_OF_DAY, 0);
60 | cal2.set(Calendar.MINUTE, 0);
61 | cal2.set(Calendar.SECOND, 0);
62 | cal2.set(Calendar.MILLISECOND, 0);
63 | int unix2 = (int) (cal2.getTimeInMillis() / 1000L);
64 |
65 | int result = 0;
66 | for (int i = 0; i < 1000; i++) {
67 | cal2.add(Calendar.DATE, unix1 > unix2 ? 1 : -1);
68 | if (cal2.getTimeInMillis() / 1000L == unix1) {
69 | result = i + 1;
70 | break;
71 | }
72 | }
73 | return result;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.2'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/javatest/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/javatest/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | dependencies {
4 | compile fileTree(dir: 'libs', include: ['*.jar'])
5 | }
--------------------------------------------------------------------------------
/javatest/src/main/java/calendar/example/MyClass.java:
--------------------------------------------------------------------------------
1 | package calendar.example;
2 |
3 | public class MyClass {
4 | }
5 |
--------------------------------------------------------------------------------
/javatest/src/main/java/calendar/example/NewDateDifference.java:
--------------------------------------------------------------------------------
1 | package calendar.example;
2 |
3 | import java.util.Calendar;
4 | import java.util.Date;
5 |
6 | public class NewDateDifference {
7 | public static void main(String[] args) {
8 |
9 | // test0();
10 | test1();
11 | }
12 |
13 | public static void test1() {
14 | Calendar cal = Calendar.getInstance();
15 | int weekIndex = cal.get(Calendar.WEEK_OF_YEAR);
16 | System.out.println("第几周?-->>" + weekIndex);
17 |
18 | cal.set(Calendar.WEEK_OF_YEAR, weekIndex);
19 |
20 | System.out.println("day?-->>" + cal.get(Calendar.DAY_OF_MONTH));
21 | int firstOfWeek = cal.getFirstDayOfWeek();
22 | System.out.println("firstOfWeek?-->>" + firstOfWeek);
23 | //2015/08/11 11:11;11
24 | // int unix = 1439262671;
25 | // cal.setTimeInMillis(unix*1000L);
26 |
27 | cal.set(Calendar.WEEK_OF_YEAR,33);
28 | weekIndex = cal.get(Calendar.WEEK_OF_YEAR);
29 | System.out.println("第几周2?-->>" + weekIndex);
30 | System.out.println("day2?-->>" + cal.get(Calendar.DAY_OF_MONTH));
31 | firstOfWeek = cal.getFirstDayOfWeek();
32 | System.out.println("firstOfWeek2?-->>" + firstOfWeek);
33 | }
34 |
35 | public static void test0() {
36 |
37 | // System.out.println("language-->>" + getContext().getResources().getConfiguration().locale.getCountry());
38 | // System.out.println("timeZone name-->>" + TimeZone.getDefault().getDisplayName());
39 | // System.out.println("timeZone offset-->>" + TimeZone.getDefault().getRawOffset());
40 | String[] insert1 = new String[]{"3", "11", "2015"};
41 | String[] insert2 = new String[]{"20", "3", "2016"};
42 |
43 |
44 | Calendar cal = Calendar.getInstance();
45 |
46 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
47 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
48 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
49 | Date firstDate = cal.getTime();
50 |
51 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
52 | cal.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
53 | cal.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
54 | Date secondDate = cal.getTime();
55 |
56 |
57 | long diff = secondDate.getTime() - firstDate.getTime();
58 |
59 | System.out.println("Days0: " + diff / 1000 / 60 / 60 / 24);
60 | System.out.println("Days1: " + getDiffDay(insert1, insert2));
61 | }
62 |
63 | public static int getDiffDay(String[] insert1, String[] insert2) {
64 | Calendar cal = Calendar.getInstance();
65 |
66 | cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
67 | cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
68 | cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
69 | cal.set(Calendar.HOUR_OF_DAY, 0);
70 | cal.set(Calendar.MINUTE, 0);
71 | cal.set(Calendar.SECOND, 0);
72 | cal.set(Calendar.MILLISECOND, 0);
73 |
74 | int unix1 = (int) (cal.getTimeInMillis() / 1000L);
75 |
76 | Calendar cal2 = Calendar.getInstance();
77 |
78 | cal2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
79 | cal2.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
80 | cal2.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
81 | cal2.set(Calendar.HOUR_OF_DAY, 0);
82 | cal2.set(Calendar.MINUTE, 0);
83 | cal2.set(Calendar.SECOND, 0);
84 | cal2.set(Calendar.MILLISECOND, 0);
85 | int unix2 = (int) (cal2.getTimeInMillis() / 1000L);
86 |
87 | int result = 0;
88 | for (int i = 0; i < 1000; i++) {
89 | cal2.add(Calendar.DATE, unix1 > unix2 ? 1 : -1);
90 | if (cal2.getTimeInMillis() / 1000L == unix1) {
91 | result = i + 1;
92 | break;
93 | }
94 | }
95 | return result;
96 | }
97 | }
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file is automatically generated by Android Studio.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must *NOT* be checked into Version Control Systems,
5 | # as it contains information specific to your local configuration.
6 | #
7 | # Location of the SDK. This is only used by Gradle.
8 | # For customization when using a Version Control System, please read the
9 | # header note.
10 | #Tue Sep 06 15:42:37 CST 2016
11 | ndk.dir=/Users/damon/Library/Android/sdk/ndk-bundle
12 | sdk.dir=/Users/damon/Library/Android/sdk
13 |
--------------------------------------------------------------------------------
/pickerview/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/pickerview/.DS_Store
--------------------------------------------------------------------------------
/pickerview/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.1"
6 |
7 | defaultConfig {
8 | minSdkVersion 18
9 | targetSdkVersion 24
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |
15 | }
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | compile fileTree(dir: 'libs', include: ['*.jar'])
26 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
27 | exclude group: 'com.android.support', module: 'support-annotations'
28 | })
29 | compile 'com.android.support:appcompat-v7:24.2.0'
30 | testCompile 'junit:junit:4.12'
31 | }
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | //apply plugin: 'com.android.library'
41 | ////apply plugin: 'com.github.dcendents.android-maven'
42 | ////apply plugin: 'com.jfrog.bintray'
43 | //
44 | //version = "2.0.7"
45 | //
46 | //android {
47 | // compileSdkVersion 23
48 | // buildToolsVersion "23.0.1"
49 | //
50 | // defaultConfig {
51 | // minSdkVersion 9
52 | // targetSdkVersion 21
53 | // versionCode 1
54 | // versionName "1.0"
55 | // }
56 | // buildTypes {
57 | // release {
58 | // minifyEnabled false
59 | // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
60 | // }
61 | // }
62 | //}
63 | //
64 | //dependencies {
65 | // compile fileTree(dir: 'libs', include: ['*.jar'])
66 | //}
67 | //
68 | ////def siteUrl = 'https://github.com/saiwu-bigkoo/Android-PickerView' // #CONFIG# // project homepage
69 | ////def gitUrl = 'https://github.com/saiwu-bigkoo/Android-PickerView.git' // #CONFIG# // project git
70 | //group = "com.bigkoo"
71 | //
72 | ////install {
73 | //// repositories.mavenInstaller {
74 | //// // This generates POM.xml with proper parameters
75 | //// pom {
76 | //// project {
77 | //// packaging 'aar'
78 | //// name 'PickerView For Android' // #CONFIG# // project title
79 | //// url siteUrl
80 | //// // Set your license
81 | //// licenses {
82 | //// license {
83 | //// name 'The Apache Software License, Version 2.0'
84 | //// url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
85 | //// }
86 | //// }
87 | //// developers {
88 | //// developer {
89 | //// id 'sai' // #CONFIG# // your user id (you can write your nickname)
90 | //// name 'sai.wu' // #CONFIG# // your user name
91 | //// email 'sai.wu@bigkoo.com' // #CONFIG# // your email
92 | //// }
93 | //// }
94 | //// scm {
95 | //// connection gitUrl
96 | //// developerConnection gitUrl
97 | //// url siteUrl
98 | //// }
99 | //// }
100 | //// }
101 | //// }
102 | ////}
103 | //
104 | //task sourcesJar(type: Jar) {
105 | // from android.sourceSets.main.java.srcDirs
106 | // classifier = 'sources'
107 | //}
108 | //
109 | //task javadoc(type: Javadoc) {
110 | // source = android.sourceSets.main.java.srcDirs
111 | // classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
112 | //}
113 | //
114 | //task javadocJar(type: Jar, dependsOn: javadoc) {
115 | // classifier = 'javadoc'
116 | // from javadoc.destinationDir
117 | //}
118 | //
119 | //artifacts {
120 | // archives javadocJar
121 | // archives sourcesJar
122 | //}
123 | //
124 | //Properties properties = new Properties()
125 | //properties.load(project.rootProject.file('local.properties').newDataInputStream())
126 | ////bintray {
127 | //// user = properties.getProperty("bintray.user")
128 | //// key = properties.getProperty("bintray.apikey")
129 | //// configurations = ['archives']
130 | //// pkg {
131 | //// repo = "maven"
132 | //// name = "PickerView" // #CONFIG# project name in jcenter
133 | //// websiteUrl = siteUrl
134 | //// vcsUrl = gitUrl
135 | //// licenses = ["Apache-2.0"]
136 | //// publish = true
137 | //// }
138 | ////}
--------------------------------------------------------------------------------
/pickerview/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/Sai/Documents/software/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/pickerview/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaohuaguo/calendarDemo/4f09dee4a7a0fa6bc0298283ee9b8c0b2185f6b7/pickerview/src/.DS_Store
--------------------------------------------------------------------------------
/pickerview/src/androidTest/java/calendar/bigkoo/pickerview/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/pickerview/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/Constant.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | /**
4 | * Created by longfei.zhang on 2016/1/12.
5 | */
6 | public class Constant {
7 |
8 | public static boolean DEBUG = true;
9 | /**默认字体大小*/
10 | public static final int TEXT_SIZE = 24;
11 | /**
12 | * 选择单位switchbtn的左侧
13 | */
14 | public static final int SWITCH_LEFT = 0;
15 | /**
16 | * 选择单位switchbtn的右侧
17 | */
18 | public static final int SWITCH_RIGHT = 1;
19 |
20 | /*************身高****************/
21 | /**身高cm最大值*/
22 | public static final int HEIGHT_CM_MAX = 271;
23 | /**身高cm最小值*/
24 | public static final int HEIGHT_CM_MIN = 121;
25 | /**身高英尺最大值*/
26 | public static final int HEIGHT_FT_MAX = 8;
27 | /**身高英尺最小值*/
28 | public static final int HEIGHT_FT_MIN = 4;
29 | /**默认身高160cm*/
30 | public static final int HEIGHT_DEFAULT = 160;
31 | public static final String HEIGHT_CM = "cm";
32 | public static final String HEIGHT_FT = "ft";
33 | public static final String HEIGHT_IN = "in";
34 | /*************身高****************/
35 |
36 | /*************体重****************/
37 | /**体重KG最大值*/
38 | public static final int WEIGHT_KG_MAX = 226;
39 | /**体重KG最小值*/
40 | public static final int WEIGHT_KG_MIN = 20;
41 | /**体重lbs最大值*/
42 | public static final int WEIGHT_LBS_MAX = 500;
43 | /**体重lbs最小值*/
44 | public static final int WEIGHT_LBS_MIN = 50;
45 | /**体重默认50*1000g,克为单位*/
46 | public static final int WEIGHT_DEFAULT = 50*1000;
47 | public static final String HEIGHT_KG = "kg";
48 | public static final String HEIGHT_LBS = "lbs";
49 |
50 | /*************体重****************/
51 |
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/CustomPickerView.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | import android.content.Context;
4 | import android.text.TextUtils;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.widget.TextView;
8 |
9 | import com.bigkoo.pickerview.R;
10 |
11 | import calendar.bigkoo.pickerview.adapter.ArrayWheelAdapter;
12 | import calendar.bigkoo.pickerview.lib.WheelView;
13 | import calendar.bigkoo.pickerview.view.BasePickerView;
14 | import calendar.bigkoo.pickerview.view.SwitchButton;
15 |
16 | import java.util.ArrayList;
17 |
18 | /**
19 | * 单个两个滚动选择
20 | * Created by longfei.zhang on 2016/1/13.
21 | */
22 | public class CustomPickerView extends BasePickerView implements View.OnClickListener{
23 |
24 | private static final String TAG = "SingleDoublePickerView";
25 | private Context mContext;
26 | private ArrayWheelAdapter mAdapter1;
27 | private ArrayWheelAdapter mAdapter2;
28 | private WheelView mWv1;
29 | private WheelView mWv2;
30 | private SwitchButton mSb;
31 | private View mConfirmBtn, mCancelBtn;
32 | private TextView mTitleTv;
33 | private String mTitle;
34 | private boolean isShowSb = false;
35 |
36 | private OnCustomSelectListener mListener;
37 | /**
38 | * 默认单行1,两行2
39 | */
40 | private int mRowNum = 1;
41 | public CustomPickerView(Context context, String title, ArrayList data){
42 | super(context);
43 | this.mContext = context;
44 | if(TextUtils.isEmpty(title)){
45 | return;
46 | }
47 | if(data == null || !(data.size()>0)){
48 | return;
49 | }
50 |
51 | this.mTitle = title;
52 | mAdapter1 = new ArrayWheelAdapter(data);
53 | mRowNum = 1;
54 | init1();
55 | }
56 | public CustomPickerView(Context context, String title, ArrayList data1, ArrayList data2){
57 | super(context);
58 | this.mContext = context;
59 | if(TextUtils.isEmpty(title)){
60 | return;
61 | }
62 | if(data1 == null || !(data1.size()>0)){
63 | return;
64 | }
65 | if(data2 == null || !(data2.size()>0)){
66 | return;
67 | }
68 | this.mTitle = title;
69 |
70 | mAdapter1 = new ArrayWheelAdapter(data1);
71 | mAdapter2 = new ArrayWheelAdapter(data2);
72 | mRowNum = 2;
73 | init1();
74 | }
75 | private void init1(){
76 | LayoutInflater.from(mContext).inflate(R.layout.pickerview_custom, contentContainer);
77 | mWv1 = (WheelView)findViewById(R.id.picker_singledouble_wv1);
78 | mWv2 = (WheelView)findViewById(R.id.picker_singledouble_wv2);
79 | mSb = (SwitchButton)findViewById(R.id.topbar_switch_btn);
80 | // -----确定和取消按钮
81 | mConfirmBtn = findViewById(R.id.topbar_confirm_btn);
82 | mCancelBtn = findViewById(R.id.topbar_cancel_btn);
83 | mConfirmBtn.setOnClickListener(this);
84 | mCancelBtn.setOnClickListener(this);
85 | //顶部标题
86 | mTitleTv = (TextView) findViewById(R.id.topbar_title_tv);
87 | mTitleTv.setText(mTitle);
88 | if(!isShowSb){
89 | mSb.setVisibility(View.INVISIBLE);
90 | }
91 |
92 | mWv1.setAdapter(mAdapter1);
93 | mWv1.setTextSize(Constant.TEXT_SIZE);
94 | mWv1.setCyclic(false);
95 | if(mRowNum == 2){
96 | mWv2.setAdapter(mAdapter2);
97 | mWv2.setTextSize(Constant.TEXT_SIZE);
98 | mWv2.setCyclic(false);
99 | }else if(mRowNum == 1){
100 | mWv2.setVisibility(View.GONE);
101 | }
102 | }
103 |
104 | /**
105 | * @param object 要选择的值
106 | */
107 | public void setSelectItem(Object object){
108 | if(object == null){
109 | RaiingPickerLog.d(TAG, "设置的值不能为空");
110 | return;
111 | }
112 | int position = mAdapter1.indexOf(object);
113 | mWv1.setCurrentItem(position);
114 | }
115 |
116 | /**
117 | * @param position 设定选择的位置
118 | */
119 | public void setSelectItem(int position){
120 | if(position < 0){
121 | RaiingPickerLog.d(TAG, "选择的位置不能为负");
122 | return;
123 | }
124 | mWv1.setCurrentItem(position);
125 | }
126 |
127 | /**
128 | * @param object1 第一列要选择的值
129 | * @param object2 第二列要选择的值
130 | */
131 | public void setSelectItem(Object object1, Object object2){
132 | if(object1 == null || object2 == null){
133 | RaiingPickerLog.d(TAG, "设置的值不能为空");
134 | return;
135 | }
136 | int position1 = mAdapter1.indexOf(object1);
137 | int position2 = mAdapter2.indexOf(object2);
138 | mWv1.setCurrentItem(position1);
139 | mWv2.setCurrentItem(position2);
140 | }
141 |
142 | /**
143 | * @param position1 第一列设定选择的位置
144 | * @param position2 第二列设定选择的位置
145 | */
146 | public void setSelectItem(int position1, int position2){
147 | if(position1 < 0|| position2 < 0){
148 | RaiingPickerLog.d(TAG, "选择的位置不能为负");
149 | return;
150 | }
151 | mWv1.setCurrentItem(position1);
152 | mWv2.setCurrentItem(position2);
153 | }
154 | @Override
155 | public void onClick(View view) {
156 | if(view.getId()==R.id.topbar_cancel_btn)
157 | {
158 | dismiss();
159 | } else if(view.getId()==R.id.topbar_confirm_btn) {
160 | if(mListener!=null){
161 | switch (mRowNum){
162 | case 1:
163 | int position = mWv1.getCurrentItem();
164 | RaiingPickerLog.d(TAG, "选择的position:" + position);
165 | mListener.onSingleSelect(mAdapter1.getItem(position), position);
166 | break;
167 | case 2:
168 |
169 | int postion1 = mWv1.getCurrentItem();
170 | int postion2 = mWv2.getCurrentItem();
171 | RaiingPickerLog.d(TAG, "选择的position:" + postion1 + ", " + postion2);
172 | mListener.onDoubleSelect(mAdapter1.getItem(postion1), postion1,
173 | mAdapter2.getItem(postion2), postion2);
174 | break;
175 | default:
176 | break;
177 | }
178 | }
179 | dismiss();
180 | }
181 | }
182 |
183 |
184 | public void setOnSelectListener(OnCustomSelectListener mListener) {
185 | this.mListener = mListener;
186 | }
187 |
188 | public interface OnCustomSelectListener {
189 | void onSingleSelect(Object object, int position);
190 | void onDoubleSelect(Object object1, int position1, Object object2, int position2);
191 | }
192 | }
193 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/OptionsPickerView.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | import android.content.Context;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.widget.TextView;
7 |
8 | import com.bigkoo.pickerview.R;
9 |
10 | import calendar.bigkoo.pickerview.view.BasePickerView;
11 | import calendar.bigkoo.pickerview.view.WheelOptions;
12 |
13 | import java.util.ArrayList;
14 |
15 | /**
16 | * Created by Sai on 15/11/22.
17 | */
18 | public class OptionsPickerView extends BasePickerView implements View.OnClickListener {
19 | WheelOptions wheelOptions;
20 | private View btnSubmit, btnCancel;
21 | private TextView tvTitle;
22 | private OnOptionsSelectListener optionsSelectListener;
23 | private static final String TAG_SUBMIT = "submit";
24 | private static final String TAG_CANCEL = "cancel";
25 | public OptionsPickerView(Context context) {
26 | super(context);
27 | LayoutInflater.from(context).inflate(R.layout.pickerview_options, contentContainer);
28 | // -----确定和取消按钮
29 | btnSubmit = findViewById(R.id.topbar_confirm_btn);
30 | btnSubmit.setTag(TAG_SUBMIT);
31 | btnCancel = findViewById(R.id.topbar_cancel_btn);
32 | btnCancel.setTag(TAG_CANCEL);
33 | btnSubmit.setOnClickListener(this);
34 | btnCancel.setOnClickListener(this);
35 | //顶部标题
36 | tvTitle = (TextView) findViewById(R.id.topbar_title_tv);
37 | // ----转轮
38 | final View optionspicker = findViewById(R.id.optionspicker);
39 | wheelOptions = new WheelOptions(optionspicker);
40 | }
41 | public void setPicker(ArrayList optionsItems) {
42 | wheelOptions.setPicker(optionsItems, null, null, false);
43 | }
44 |
45 | public void setPicker(ArrayList options1Items,
46 | ArrayList> options2Items, boolean linkage) {
47 | wheelOptions.setPicker(options1Items, options2Items, null, linkage);
48 | }
49 |
50 | public void setPicker(ArrayList options1Items,
51 | ArrayList> options2Items,
52 | ArrayList>> options3Items,
53 | boolean linkage) {
54 | wheelOptions.setPicker(options1Items, options2Items, options3Items,
55 | linkage);
56 | }
57 | /**
58 | * 设置选中的item位置
59 | * @param option1
60 | */
61 | public void setSelectOptions(int option1){
62 | wheelOptions.setCurrentItems(option1, 0, 0);
63 | }
64 | /**
65 | * 设置选中的item位置
66 | * @param option1
67 | * @param option2
68 | */
69 | public void setSelectOptions(int option1, int option2){
70 | wheelOptions.setCurrentItems(option1, option2, 0);
71 | }
72 | /**
73 | * 设置选中的item位置
74 | * @param option1
75 | * @param option2
76 | * @param option3
77 | */
78 | public void setSelectOptions(int option1, int option2, int option3){
79 | wheelOptions.setCurrentItems(option1, option2, option3);
80 | }
81 | /**
82 | * 设置选项的单位
83 | * @param label1
84 | */
85 | public void setLabels(String label1){
86 | wheelOptions.setLabels(label1, null, null);
87 | }
88 | /**
89 | * 设置选项的单位
90 | * @param label1
91 | * @param label2
92 | */
93 | public void setLabels(String label1,String label2){
94 | wheelOptions.setLabels(label1, label2, null);
95 | }
96 | /**
97 | * 设置选项的单位
98 | * @param label1
99 | * @param label2
100 | * @param label3
101 | */
102 | public void setLabels(String label1,String label2,String label3){
103 | wheelOptions.setLabels(label1, label2, label3);
104 | }
105 | /**
106 | * 设置是否循环滚动
107 | * @param cyclic
108 | */
109 | public void setCyclic(boolean cyclic){
110 | wheelOptions.setCyclic(cyclic);
111 | }
112 | public void setCyclic(boolean cyclic1,boolean cyclic2,boolean cyclic3) {
113 | wheelOptions.setCyclic(cyclic1,cyclic2,cyclic3);
114 | }
115 |
116 |
117 | @Override
118 | public void onClick(View v)
119 | {
120 | String tag=(String) v.getTag();
121 | if(tag.equals(TAG_CANCEL))
122 | {
123 | dismiss();
124 | return;
125 | }
126 | else
127 | {
128 | if(optionsSelectListener!=null)
129 | {
130 | int[] optionsCurrentItems=wheelOptions.getCurrentItems();
131 | optionsSelectListener.onOptionsSelect(optionsCurrentItems[0], optionsCurrentItems[1], optionsCurrentItems[2]);
132 | }
133 | dismiss();
134 | return;
135 | }
136 | }
137 |
138 | public interface OnOptionsSelectListener {
139 | public void onOptionsSelect(int options1, int option2, int options3);
140 | }
141 |
142 | public void setOnoptionsSelectListener(
143 | OnOptionsSelectListener optionsSelectListener) {
144 | this.optionsSelectListener = optionsSelectListener;
145 | }
146 |
147 | public void setTitle(String title){
148 | tvTitle.setText(title);
149 | }
150 | }
151 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/RaiingPickerLog.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | import android.util.Log;
4 |
5 | /**
6 | * Created by longfei.zhang on 2016/1/13.
7 | */
8 | public class RaiingPickerLog {
9 | public static void d(String tag, String message){
10 | if(Constant.DEBUG){
11 | Log.d(tag, message);
12 | }
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/TimePickerView.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview;
2 |
3 | import android.content.Context;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.widget.TextView;
7 |
8 | import com.bigkoo.pickerview.R;
9 |
10 | import calendar.bigkoo.pickerview.view.BasePickerView;
11 | import calendar.bigkoo.pickerview.view.WheelTime;
12 |
13 | import java.text.ParseException;
14 | import java.util.Calendar;
15 | import java.util.Date;
16 |
17 | /**
18 | * Created by Sai on 15/11/22.
19 | */
20 | public class TimePickerView extends BasePickerView implements View.OnClickListener {
21 | public enum Type {
22 | ALL, YEAR_MONTH_DAY, HOURS_MINS, MONTH_DAY_HOUR_MIN , YEAR_MONTH
23 | }// 四种选择模式,年月日时分,年月日,时分,月日时分
24 |
25 | WheelTime wheelTime;
26 | private View btnSubmit, btnCancel;
27 | private TextView tvTitle;
28 | private static final String TAG_SUBMIT = "submit";
29 | private static final String TAG_CANCEL = "cancel";
30 | private OnTimeSelectListener timeSelectListener;
31 |
32 | public TimePickerView(Context context, Type type) {
33 | super(context);
34 |
35 | LayoutInflater.from(context).inflate(R.layout.pickerview_time, contentContainer);
36 | // -----确定和取消按钮
37 | btnSubmit = findViewById(R.id.topbar_confirm_btn);
38 | btnSubmit.setTag(TAG_SUBMIT);
39 | btnCancel = findViewById(R.id.topbar_cancel_btn);
40 | btnCancel.setTag(TAG_CANCEL);
41 | btnSubmit.setOnClickListener(this);
42 | btnCancel.setOnClickListener(this);
43 | //顶部标题
44 | tvTitle = (TextView) findViewById(R.id.topbar_title_tv);
45 | // ----时间转轮
46 | final View timepickerview = findViewById(R.id.timepicker);
47 | wheelTime = new WheelTime(timepickerview, type);
48 |
49 | //默认选中当前时间
50 | Calendar calendar = Calendar.getInstance();
51 | calendar.setTimeInMillis(System.currentTimeMillis());
52 | int year = calendar.get(Calendar.YEAR);
53 | int month = calendar.get(Calendar.MONTH);
54 | int day = calendar.get(Calendar.DAY_OF_MONTH);
55 | int hours = calendar.get(Calendar.HOUR_OF_DAY);
56 | int minute = calendar.get(Calendar.MINUTE);
57 | wheelTime.setPicker(year, month, day, hours, minute);
58 |
59 | }
60 |
61 | /**
62 | * 设置可以选择的时间范围
63 | *
64 | * @param startYear
65 | * @param endYear
66 | */
67 | public void setRange(int startYear, int endYear) {
68 | wheelTime.setStartYear(startYear);
69 | wheelTime.setEndYear(endYear);
70 | }
71 |
72 | /**
73 | * 设置选中时间
74 | * @param date
75 | */
76 | public void setTime(Date date) {
77 | Calendar calendar = Calendar.getInstance();
78 | if (date == null)
79 | calendar.setTimeInMillis(System.currentTimeMillis());
80 | else
81 | calendar.setTime(date);
82 | int year = calendar.get(Calendar.YEAR);
83 | int month = calendar.get(Calendar.MONTH);
84 | int day = calendar.get(Calendar.DAY_OF_MONTH);
85 | int hours = calendar.get(Calendar.HOUR_OF_DAY);
86 | int minute = calendar.get(Calendar.MINUTE);
87 | wheelTime.setPicker(year, month, day, hours, minute);
88 | }
89 |
90 | // /**
91 | // * 指定选中的时间,显示选择器
92 | // *
93 | // * @param date
94 | // */
95 | // public void show(Date date) {
96 | // Calendar calendar = Calendar.getInstance();
97 | // if (date == null)
98 | // calendar.setTimeInMillis(System.currentTimeMillis());
99 | // else
100 | // calendar.setTime(date);
101 | // int year = calendar.get(Calendar.YEAR);
102 | // int month = calendar.get(Calendar.MONTH);
103 | // int day = calendar.get(Calendar.DAY_OF_MONTH);
104 | // int hours = calendar.get(Calendar.HOUR_OF_DAY);
105 | // int minute = calendar.get(Calendar.MINUTE);
106 | // wheelTime.setPicker(year, month, day, hours, minute);
107 | // show();
108 | // }
109 |
110 | /**
111 | * 设置是否循环滚动
112 | *
113 | * @param cyclic
114 | */
115 | public void setCyclic(boolean cyclic) {
116 | wheelTime.setCyclic(cyclic);
117 | }
118 |
119 | @Override
120 | public void onClick(View v) {
121 | String tag = (String) v.getTag();
122 | if (tag.equals(TAG_CANCEL)) {
123 | dismiss();
124 | return;
125 | } else {
126 | if (timeSelectListener != null) {
127 | try {
128 | Date date = WheelTime.dateFormat.parse(wheelTime.getTime());
129 | timeSelectListener.onTimeSelect(date);
130 | } catch (ParseException e) {
131 | e.printStackTrace();
132 | }
133 | }
134 | dismiss();
135 | return;
136 | }
137 | }
138 |
139 | public interface OnTimeSelectListener {
140 | void onTimeSelect(Date date);
141 | }
142 |
143 | public void setOnTimeSelectListener(OnTimeSelectListener timeSelectListener) {
144 | this.timeSelectListener = timeSelectListener;
145 | }
146 |
147 | public void setTitle(String title){
148 | tvTitle.setText(title);
149 | }
150 | }
151 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/adapter/ArrayWheelAdapter.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.adapter;
2 |
3 | import java.util.ArrayList;
4 |
5 | /**
6 | * The simple Array wheel adapter
7 | * @param the element type
8 | */
9 | public class ArrayWheelAdapter implements WheelAdapter {
10 |
11 | /** The default items length */
12 | public static final int DEFAULT_LENGTH = 4;
13 |
14 | // items
15 | private ArrayList items;
16 | // length
17 | private int length;
18 |
19 | /**
20 | * Constructor
21 | * @param items the items
22 | * @param length the max items length
23 | */
24 | public ArrayWheelAdapter(ArrayList items, int length) {
25 | this.items = items;
26 | this.length = length;
27 | }
28 |
29 | /**
30 | * Contructor
31 | * @param items the items
32 | */
33 | public ArrayWheelAdapter(ArrayList items) {
34 | this(items, DEFAULT_LENGTH);
35 | }
36 |
37 | @Override
38 | public Object getItem(int index) {
39 | if (index >= 0 && index < items.size()) {
40 | return items.get(index);
41 | }
42 | return "";
43 | }
44 |
45 | @Override
46 | public int getItemsCount() {
47 | return items.size();
48 | }
49 |
50 | @Override
51 | public int indexOf(Object o){
52 | return items.indexOf(o);
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/adapter/NumericWheelAdapter.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.adapter;
2 |
3 |
4 | /**
5 | * Numeric Wheel adapter.
6 | */
7 | public class NumericWheelAdapter implements WheelAdapter {
8 |
9 | /** The default min value */
10 | public static final int DEFAULT_MAX_VALUE = 9;
11 |
12 | /** The default max value */
13 | private static final int DEFAULT_MIN_VALUE = 0;
14 |
15 | // Values
16 | private int minValue;
17 | private int maxValue;
18 |
19 | /**
20 | * Default constructor
21 | */
22 | public NumericWheelAdapter() {
23 | this(DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE);
24 | }
25 |
26 | /**
27 | * Constructor
28 | * @param minValue the wheel min value
29 | * @param maxValue the wheel max value
30 | */
31 | public NumericWheelAdapter(int minValue, int maxValue) {
32 | this.minValue = minValue;
33 | this.maxValue = maxValue;
34 | }
35 |
36 | @Override
37 | public Object getItem(int index) {
38 | if (index >= 0 && index < getItemsCount()) {
39 | int value = minValue + index;
40 | return value;
41 | }
42 | return 0;
43 | }
44 |
45 | @Override
46 | public int getItemsCount() {
47 | return maxValue - minValue + 1;
48 | }
49 |
50 | @Override
51 | public int indexOf(Object o){
52 | return (int)o - minValue;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/adapter/WheelAdapter.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.adapter;
2 |
3 | public interface WheelAdapter {
4 | /**
5 | * Gets items count
6 | * @return the count of wheel items
7 | */
8 | public int getItemsCount();
9 |
10 | /**
11 | * Gets a wheel item by index.
12 | *
13 | * @param index the item index
14 | * @return the wheel item text or null
15 | */
16 | public T getItem(int index);
17 |
18 | /**
19 | * Gets maximum item length. It is used to determine the wheel width.
20 | * If -1 is returned there will be used the default wheel width.
21 | *
22 | * @return the maximum item length or -1
23 | */
24 | public int indexOf(T o);
25 | }
26 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/dialog/PickerBaseDialog.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.dialog;
2 |
3 | import android.app.AlertDialog;
4 | import android.content.Context;
5 | import android.view.Gravity;
6 | import android.view.ViewGroup;
7 | import android.view.Window;
8 | import android.view.WindowManager;
9 |
10 | import com.bigkoo.pickerview.R;
11 |
12 | /**
13 | * 弹出的框
14 | * Created by longfei.zhang on 2016/1/20.
15 | */
16 | public class PickerBaseDialog extends AlertDialog{
17 | public PickerBaseDialog(Context context) {
18 | super(context);
19 | }
20 |
21 | public PickerBaseDialog(Context context, int theme) {
22 | super(context, theme);
23 | }
24 |
25 | @Override
26 | public void show() {
27 | super.show();
28 | //小米手机在show之前设置有问题
29 | Window mWindow = this.getWindow();
30 | WindowManager.LayoutParams params = mWindow.getAttributes();
31 | params.width = ViewGroup.LayoutParams.MATCH_PARENT;
32 | mWindow.setGravity(Gravity.BOTTOM);
33 | mWindow.setAttributes(params);
34 | mWindow.setWindowAnimations(R.style.AnimBottom);
35 |
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/lib/InertiaTimerTask.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.lib;
2 |
3 | import java.util.TimerTask;
4 |
5 | final class InertiaTimerTask extends TimerTask {
6 |
7 | float a;
8 | final float velocityY;
9 | final WheelView loopView;
10 |
11 | InertiaTimerTask(WheelView loopview, float velocityY) {
12 | super();
13 | loopView = loopview;
14 | this.velocityY = velocityY;
15 | a = Integer.MAX_VALUE;
16 | }
17 |
18 | @Override
19 | public final void run() {
20 | if (a == Integer.MAX_VALUE) {
21 | if (Math.abs(velocityY) > 2000F) {
22 | if (velocityY > 0.0F) {
23 | a = 2000F;
24 | } else {
25 | a = -2000F;
26 | }
27 | } else {
28 | a = velocityY;
29 | }
30 | }
31 | if (Math.abs(a) >= 0.0F && Math.abs(a) <= 20F) {
32 | loopView.cancelFuture();
33 | loopView.handler.sendEmptyMessage(MessageHandler.WHAT_SMOOTH_SCROLL);
34 | return;
35 | }
36 | int i = (int) ((a * 10F) / 1000F);
37 | loopView.totalScrollY = loopView.totalScrollY - i;
38 | if (!loopView.isLoop) {
39 | float itemHeight = loopView.itemHeight;
40 | float top = (-loopView.initPosition) * itemHeight;
41 | float bottom = (loopView.getItemsCount() - 1 - loopView.initPosition) * itemHeight;
42 | if(loopView.totalScrollY - itemHeight*0.3 < top){
43 | top = loopView.totalScrollY + i;
44 | }
45 | else if(loopView.totalScrollY + itemHeight*0.3 > bottom){
46 | bottom = loopView.totalScrollY + i;
47 | }
48 |
49 | if (loopView.totalScrollY <= top){
50 | a = 40F;
51 | loopView.totalScrollY = (int)top;
52 | } else if (loopView.totalScrollY >= bottom) {
53 | loopView.totalScrollY = (int)bottom;
54 | a = -40F;
55 | }
56 | }
57 | if (a < 0.0F) {
58 | a = a + 20F;
59 | } else {
60 | a = a - 20F;
61 | }
62 | loopView.handler.sendEmptyMessage(MessageHandler.WHAT_INVALIDATE_LOOP_VIEW);
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/lib/LoopViewGestureListener.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.lib;
2 |
3 | import android.view.MotionEvent;
4 |
5 | final class LoopViewGestureListener extends android.view.GestureDetector.SimpleOnGestureListener {
6 |
7 | final WheelView loopView;
8 |
9 | LoopViewGestureListener(WheelView loopview) {
10 | loopView = loopview;
11 | }
12 |
13 | @Override
14 | public final boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
15 | loopView.scrollBy(velocityY);
16 | return true;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/lib/MessageHandler.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.lib;
2 |
3 | import android.os.Handler;
4 | import android.os.Message;
5 |
6 | final class MessageHandler extends Handler {
7 | public static final int WHAT_INVALIDATE_LOOP_VIEW = 1000;
8 | public static final int WHAT_SMOOTH_SCROLL = 2000;
9 | public static final int WHAT_ITEM_SELECTED = 3000;
10 |
11 | final WheelView loopview;
12 |
13 | MessageHandler(WheelView loopview) {
14 | this.loopview = loopview;
15 | }
16 |
17 | @Override
18 | public final void handleMessage(Message msg) {
19 | switch (msg.what) {
20 | case WHAT_INVALIDATE_LOOP_VIEW:
21 | loopview.invalidate();
22 | break;
23 |
24 | case WHAT_SMOOTH_SCROLL:
25 | loopview.smoothScroll(WheelView.ACTION.FLING);
26 | break;
27 |
28 | case WHAT_ITEM_SELECTED:
29 | loopview.onItemSelected();
30 | break;
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/lib/OnItemSelectedRunnable.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.lib;
2 |
3 | final class OnItemSelectedRunnable implements Runnable {
4 | final WheelView loopView;
5 |
6 | OnItemSelectedRunnable(WheelView loopview) {
7 | loopView = loopview;
8 | }
9 |
10 | @Override
11 | public final void run() {
12 | loopView.onItemSelectedListener.onItemSelected(loopView.getCurrentItem());
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/lib/SmoothScrollTimerTask.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.lib;
2 |
3 | import java.util.TimerTask;
4 |
5 | final class SmoothScrollTimerTask extends TimerTask {
6 |
7 | int realTotalOffset;
8 | int realOffset;
9 | int offset;
10 | final WheelView loopView;
11 |
12 | SmoothScrollTimerTask(WheelView loopview, int offset) {
13 | this.loopView = loopview;
14 | this.offset = offset;
15 | realTotalOffset = Integer.MAX_VALUE;
16 | realOffset = 0;
17 | }
18 |
19 | @Override
20 | public final void run() {
21 | if (realTotalOffset == Integer.MAX_VALUE) {
22 | realTotalOffset = offset;
23 | }
24 | //把要滚动的范围细分成十小份,按是小份单位来重绘
25 | realOffset = (int) ((float) realTotalOffset * 0.1F);
26 |
27 | if (realOffset == 0) {
28 | if (realTotalOffset < 0) {
29 | realOffset = -1;
30 | } else {
31 | realOffset = 1;
32 | }
33 | }
34 |
35 | if (Math.abs(realTotalOffset) <= 1) {
36 | loopView.cancelFuture();
37 | loopView.handler.sendEmptyMessage(MessageHandler.WHAT_ITEM_SELECTED);
38 | } else {
39 | loopView.totalScrollY = loopView.totalScrollY + realOffset;
40 |
41 | //这里如果不是循环模式,则点击空白位置需要回滚,不然就会出现选到-1 item的 情况
42 | if (!loopView.isLoop) {
43 | float itemHeight = loopView.itemHeight;
44 | float top = (float) (-loopView.initPosition) * itemHeight;
45 | float bottom = (float) (loopView.getItemsCount() - 1 - loopView.initPosition) * itemHeight;
46 | if (loopView.totalScrollY <= top||loopView.totalScrollY >= bottom) {
47 | loopView.totalScrollY = loopView.totalScrollY - realOffset;
48 | loopView.cancelFuture();
49 | loopView.handler.sendEmptyMessage(MessageHandler.WHAT_ITEM_SELECTED);
50 | return;
51 | }
52 | }
53 | loopView.handler.sendEmptyMessage(MessageHandler.WHAT_INVALIDATE_LOOP_VIEW);
54 | realTotalOffset = realTotalOffset - realOffset;
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/listener/OnDismissListener.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.listener;
2 |
3 | /**
4 | * Created by Sai on 15/8/9.
5 | */
6 | public interface OnDismissListener {
7 | public void onDismiss(Object o);
8 | }
9 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/listener/OnItemSelectedListener.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.listener;
2 |
3 |
4 | public interface OnItemSelectedListener {
5 | void onItemSelected(int index);
6 | }
7 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/utils/PickerViewAnimateUtil.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.utils;
2 |
3 | import android.view.Gravity;
4 |
5 | import com.bigkoo.pickerview.R;
6 |
7 | /**
8 | * Created by Sai on 15/8/9.
9 | */
10 | public class PickerViewAnimateUtil {
11 | private static final int INVALID = -1;
12 | /**
13 | * Get default animation resource when not defined by the user
14 | *
15 | * @param gravity the gravity of the dialog
16 | * @param isInAnimation determine if is in or out animation. true when is is
17 | * @return the id of the animation resource
18 | */
19 | public static int getAnimationResource(int gravity, boolean isInAnimation) {
20 | switch (gravity) {
21 | case Gravity.BOTTOM:
22 | return isInAnimation ? R.anim.slide_in_bottom : R.anim.slide_out_bottom;
23 | }
24 | return INVALID;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/utils/PickerViewUtils.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.utils;
2 |
3 | import android.util.Log;
4 |
5 | import java.text.DateFormatSymbols;
6 | import java.text.SimpleDateFormat;
7 | import java.util.ArrayList;
8 | import java.util.Date;
9 | import java.util.List;
10 | import java.util.Locale;
11 |
12 | /**
13 | * Created by longfei.zhang on 2016/1/20.
14 | */
15 | public class PickerViewUtils {
16 | /**
17 | * 获取1-12月字符串,中文1月2月。。。
18 | * @return 1-12月字符串集合
19 | */
20 | public static ArrayList getMonths(){
21 | ArrayList months1 = new ArrayList<>();
22 | DateFormatSymbols symbols = new DateFormatSymbols(Locale.getDefault());
23 | String[] months = symbols.getShortMonths();
24 | for (int i = 0; i < months.length; i++) {
25 | months1.add(months[i]);
26 | }
27 | return months1;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pickerview/src/main/java/calendar/bigkoo/pickerview/view/BasePickerView.java:
--------------------------------------------------------------------------------
1 | package calendar.bigkoo.pickerview.view;
2 |
3 | import android.content.Context;
4 | import android.view.Gravity;
5 | import android.view.LayoutInflater;
6 | import android.view.MotionEvent;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.view.animation.Animation;
10 | import android.view.animation.AnimationUtils;
11 | import android.widget.FrameLayout;
12 |
13 | import calendar.bigkoo.pickerview.dialog.PickerBaseDialog;
14 | import calendar.bigkoo.pickerview.utils.PickerViewAnimateUtil;
15 | import com.bigkoo.pickerview.R;
16 | import calendar.bigkoo.pickerview.listener.OnDismissListener;
17 |
18 | /**
19 | * Created by Sai on 15/11/22.
20 | * 精仿iOSPickerViewController控件
21 | */
22 | public class BasePickerView {
23 | private final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
24 | ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM
25 | );
26 |
27 | private Context context;
28 | protected ViewGroup contentContainer;
29 | // private ViewGroup decorView;//activity的根View
30 | private ViewGroup rootView;//附加View 的 根View
31 |
32 | private OnDismissListener onDismissListener;
33 | private boolean isDismissing;
34 |
35 | private Animation outAnim;
36 | private Animation inAnim;
37 | private int gravity = Gravity.BOTTOM;
38 | private PickerBaseDialog mDialog;
39 | /**
40 | * 是否可以点击周围消失,默认false不可以
41 | */
42 | private boolean isCancelOutSide = false;
43 | /**
44 | * 是否可以点击返回键消失,默认false不可以
45 | */
46 | private boolean isCancelBack = false;
47 | public BasePickerView(Context context){
48 | this.context = context;
49 |
50 | initViews();
51 | init();
52 | initEvents();
53 | }
54 |
55 | protected void initViews(){
56 | LayoutInflater layoutInflater = LayoutInflater.from(context);
57 | // decorView = (ViewGroup) ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content);
58 | rootView = (ViewGroup) layoutInflater.inflate(R.layout.layout_basepickerview, null);
59 | rootView.setLayoutParams(new FrameLayout.LayoutParams(
60 | ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
61 | ));
62 | contentContainer = (ViewGroup) rootView.findViewById(R.id.content_container);
63 | contentContainer.setLayoutParams(params);
64 | }
65 |
66 | protected void init() {
67 | inAnim = getInAnimation();
68 | outAnim = getOutAnimation();
69 | }
70 | protected void initEvents() {
71 | }
72 | /**
73 | * show的时候调用
74 | *
75 | * @param view 这个View
76 | */
77 | private void onAttached(View view) {
78 | // decorView.addView(view);
79 | contentContainer.startAnimation(inAnim);
80 | }
81 |
82 | private void alertDialog(View view){
83 | mDialog = new PickerBaseDialog(context);
84 | mDialog.setCanceledOnTouchOutside(isCancelOutSide);
85 | mDialog.setCancelable(isCancelBack);
86 | mDialog.show();
87 | mDialog.setContentView(view);
88 | }
89 | /**
90 | * 添加这个View到Dialog //Activity的根视图
91 | */
92 | public void show() {
93 | if (isShowing()) {
94 | return;
95 | }
96 | alertDialog(rootView);
97 | // onAttached(rootView);
98 | }
99 | private void setCanceledOnTouchOutside(boolean isCancel){
100 | this.isCancelOutSide = isCancel;
101 | }
102 | private void setCancelBack(boolean isCancel){
103 | this.isCancelBack = isCancel;
104 | }
105 | // /**
106 | // * 检测该View是不是已经添加到根视图
107 | // *
108 | // * @return 如果视图已经存在该View返回true
109 | // */
110 | // public boolean isShowing() {
111 | // mDialog.isShowing();
112 | // View view = decorView.findViewById(R.id.outmost_container);
113 | // return view != null;
114 | // }
115 |
116 | public boolean isShowing() {
117 | if(mDialog == null){
118 | return false;
119 | }
120 | return mDialog.isShowing();
121 | }
122 | public void dismiss() {
123 | if (isDismissing) {
124 | return;
125 | }
126 |
127 | if(mDialog!=null&&mDialog.isShowing()){
128 | mDialog.dismiss();
129 | isDismissing = true;
130 | }
131 | // //消失动画
132 | // outAnim.setAnimationListener(new Animation.AnimationListener() {
133 | // @Override
134 | // public void onAnimationStart(Animation animation) {
135 | //
136 | // }
137 | //
138 | // @Override
139 | // public void onAnimationEnd(Animation animation) {
140 | // decorView.post(new Runnable() {
141 | // @Override
142 | // public void run() {
143 | // //从activity根视图移除
144 | // decorView.removeView(rootView);
145 | // isDismissing = false;
146 | // if (onDismissListener != null) {
147 | // onDismissListener.onDismiss(BasePickerView.this);
148 | // }
149 | // }
150 | // });
151 | // }
152 | //
153 | // @Override
154 | // public void onAnimationRepeat(Animation animation) {
155 | //
156 | // }
157 | // });
158 | // contentContainer.startAnimation(outAnim);
159 |
160 | }
161 | public Animation getInAnimation() {
162 | int res = PickerViewAnimateUtil.getAnimationResource(this.gravity, true);
163 | return AnimationUtils.loadAnimation(context, res);
164 | }
165 |
166 | public Animation getOutAnimation() {
167 | int res = PickerViewAnimateUtil.getAnimationResource(this.gravity, false);
168 | return AnimationUtils.loadAnimation(context, res);
169 | }
170 |
171 | public BasePickerView setOnDismissListener(OnDismissListener onDismissListener) {
172 | this.onDismissListener = onDismissListener;
173 | return this;
174 | }
175 |
176 | public BasePickerView setCancelable(boolean isCancelable) {
177 | View view = rootView.findViewById(R.id.outmost_container);
178 |
179 | if (isCancelable) {
180 | view.setOnTouchListener(onCancelableTouchListener);
181 | }
182 | else{
183 | view.setOnTouchListener(null);
184 | }
185 | return this;
186 | }
187 | /**
188 | * Called when the user touch on black overlay in order to dismiss the dialog
189 | */
190 | private final View.OnTouchListener onCancelableTouchListener = new View.OnTouchListener() {
191 | @Override
192 | public boolean onTouch(View v, MotionEvent event) {
193 | if (event.getAction() == MotionEvent.ACTION_DOWN) {
194 | dismiss();
195 | }
196 | return false;
197 | }
198 | };
199 |
200 | public View findViewById(int id){
201 | return contentContainer.findViewById(id);
202 | }
203 | }
204 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/anim/slide_in_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/anim/slide_out_bottom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/selector_pickerview_btn.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/shape_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/shape_left_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/shape_left_tv_un.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/shape_right_tv.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/drawable/shape_right_tv_un.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/include_pickerview_topbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
20 |
28 |
29 |
41 |
52 |
53 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/layout_basepickerview.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
15 |
16 |
23 |
24 |
31 |
32 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_height.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
15 |
21 |
27 |
28 |
34 |
40 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
25 |
26 |
31 |
32 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_time.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
24 |
25 |
30 |
31 |
36 |
37 |
42 |
43 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_weight.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
15 |
21 |
27 |
33 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/pickerview_ymd.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
16 |
22 |
28 |
34 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/layout/switch_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
17 |
25 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 年
4 | 日
5 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #057dff
4 | #c2daf5
5 | #f5f5f5
6 | #000000
7 | #a8a8a8
8 | #2a2a2a
9 | #d5d5d5
10 |
11 | #60000000
12 | #FFFFFF
13 |
14 | #B7B7B7
15 |
16 |
17 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 44dp
4 |
5 | 15dp
6 |
7 | 15dp
8 |
9 | 16dp
10 | 18dp
11 |
12 | 1dp
13 | 100dp
14 | 35dp
15 | 15dp
16 | 3dp
17 | 2dp
18 |
19 | 80dp
20 |
21 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 300
5 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 取消
4 | 确定
5 | 年
6 | 月
7 | 日
8 | 时
9 | 分
10 | 秒
11 | CM
12 | IN
13 | KG
14 | LB
15 |
16 |
--------------------------------------------------------------------------------
/pickerview/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
11 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':javatest','pickerview'
2 |
--------------------------------------------------------------------------------