Skip to content

Commit

Permalink
支持自定义年视图,修复一些bug
Browse files Browse the repository at this point in the history
  • Loading branch information
huanghaibin committed Oct 11, 2018
1 parent 81f1bb3 commit 29e3929
Show file tree
Hide file tree
Showing 25 changed files with 750 additions and 483 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ Android上一个优雅、高度自定义、性能高效的日历控件,完美

### Gradle
```
compile 'com.haibin:calendarview:3.4.7'
compile 'com.haibin:calendarview:3.4.8'
```
```
<dependency>
<groupId>com.haibin</groupId>
<artifactId>calendarview</artifactId>
<version>3.4.7</version>
<version>3.4.8</version>
<type>pom</type>
</dependency>
```
Expand Down
4 changes: 2 additions & 2 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ This widget has obvious advantages of memory and efficiency, adapt to many scene

### Gradle
```
compile 'com.haibin:calendarview:3.4.7'
compile 'com.haibin:calendarview:3.4.8'
```
```
<dependency>
<groupId>com.haibin</groupId>
<artifactId>calendarview</artifactId>
<version>3.4.7</version>
<version>3.4.8</version>
<type>pom</type>
</dependency>
```
Expand Down
20 changes: 5 additions & 15 deletions app/src/main/java/com/haibin/calendarviewproject/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@
import com.haibin.calendarviewproject.base.activity.BaseActivity;
import com.haibin.calendarviewproject.colorful.ColorfulActivity;
import com.haibin.calendarviewproject.custom.CustomActivity;
import com.haibin.calendarviewproject.custom.CustomMonthView;
import com.haibin.calendarviewproject.custom.CustomWeekBar;
import com.haibin.calendarviewproject.custom.CustomWeekView;
import com.haibin.calendarviewproject.index.IndexActivity;
import com.haibin.calendarviewproject.meizu.MeiZuActivity;
import com.haibin.calendarviewproject.meizu.MeiZuMonthView;
import com.haibin.calendarviewproject.meizu.MeizuWeekView;
import com.haibin.calendarviewproject.pager.ViewPagerActivity;
import com.haibin.calendarviewproject.progress.ProgressActivity;
import com.haibin.calendarviewproject.range.RangeActivity;
Expand Down Expand Up @@ -89,15 +88,6 @@ public void onClick(View v) {
mTextMonthDay.setText(String.valueOf(mYear));
}
});
findViewById(R.id.fl_current).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//mCalendarView.scrollToCurrent();
//mCalendarView.scrollToCalendar(2018,7,14);
//Log.e("scrollToCurrent", " -- " + mCalendarView.getSelectedCalendar());

}
});
findViewById(R.id.iv_more).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Expand Down Expand Up @@ -292,9 +282,9 @@ public void onClick(DialogInterface dialog, int which) {
}
break;
case 4:
mCalendarView.setWeekView(CustomWeekView.class);
mCalendarView.setMonthView(CustomMonthView.class);
mCalendarView.setWeekBar(CustomWeekBar.class);
mCalendarView.setWeekView(MeizuWeekView.class);
mCalendarView.setMonthView(MeiZuMonthView.class);
mCalendarView.setWeekBar(EnglishWeekBar.class);
break;
case 5:
mCalendarView.setAllMode();
Expand Down
11 changes: 7 additions & 4 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -158,16 +158,19 @@
app:selected_theme_color="#80cfcfcf"
app:week_background="#fff"
app:week_bar_height="46dp"
app:month_view="com.haibin.calendarviewproject.meizu.MeiZuMonthView"
app:week_view="com.haibin.calendarviewproject.meizu.MeizuWeekView"
app:week_bar_view="com.haibin.calendarviewproject.EnglishWeekBar"
app:month_view="com.haibin.calendarviewproject.custom.CustomMonthView"
app:week_view="com.haibin.calendarviewproject.custom.CustomWeekView"
app:week_bar_view="com.haibin.calendarviewproject.custom.CustomWeekBar"
app:week_line_background="#00000000"
app:week_line_margin="16dp"
app:week_start_with="mon"
app:week_text_size="10sp"
app:year_view_week_height="0dp"
app:year_view_week_text_color="#666666"
app:year_view_week_text_size="7sp"
app:year_view_background="#f6f6f6"
app:year_view_day_text_color="#333333"
app:year_view_day_text_size="9sp"
app:year_view_day_text_size="8sp"
app:year_view_month_text_color="#ff0000"
app:year_view_month_text_size="20sp"
app:year_view_scheme_color="#f17706" />
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@null</item>
<item name="android:windowIsTranslucent">true</item>
</style>

</resources>
4 changes: 2 additions & 2 deletions calendarview/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
minSdkVersion 15
//noinspection OldTargetApi
targetSdkVersion 23
versionCode 347
versionName "3.4.7"
versionCode 348
versionName "3.4.8"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,34 +25,6 @@ public void getMonthViewHeight() throws Exception {
assertEquals(6, CalendarUtil.getMonthViewHeight(2018, 7, 1, 2));
}

/**
* 根据星期数和最小年份推算出该星期的第一天
*
* @throws Exception Exception
*/
@Test
public void getFirstCalendarFromWeekCount() throws Exception {
Calendar calendar = new Calendar();
calendar.setYear(2017);
calendar.setMonth(12);
calendar.setDay(30);

Calendar firstCalendar = CalendarUtil.getFirstCalendarFromWeekCount(2018, 1, 1, 7);
assertEquals(calendar, firstCalendar);

calendar.setYear(2017);
calendar.setMonth(12);
calendar.setDay(31);
firstCalendar = CalendarUtil.getFirstCalendarFromWeekCount(2018, 1, 1, 1);
assertEquals(calendar, firstCalendar);

calendar.setYear(2018);
calendar.setMonth(1);
calendar.setDay(1);
firstCalendar = CalendarUtil.getFirstCalendarFromWeekCount(2018, 1, 1, 2);
assertEquals(calendar, firstCalendar);
}

/**
* 根据星期数和最小日期推算出该星期的第一天
*/
Expand Down Expand Up @@ -89,43 +61,6 @@ public void getFirstCalendarStartWithMinCalendar() throws Exception {
assertEquals(calendar, firstCalendar);
}

/**
* 获取两个年份之间一共有多少周,注意周起始周一、周日、周六
*
* @throws Exception Exception
*/
@Test
public void getWeekCountBetweenYearAndYear() throws Exception {
int count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 12, 1);
assertEquals(53, count);


count = CalendarUtil.getWeekCountBetweenYearAndYear(2017, 1, 2018, 12, 1);
assertEquals(105, count);

count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 2, 1);
assertEquals(9, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 2, 2);
assertEquals(9, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 2, 7);
assertEquals(9, count);

count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 3, 1);
assertEquals(13, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 3, 2);
assertEquals(13, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 3, 7);
assertEquals(14, count);

count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 4, 1);
assertEquals(18, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 4, 2);
assertEquals(18, count);
count = CalendarUtil.getWeekCountBetweenYearAndYear(2018, 1, 2018, 4, 7);
assertEquals(18, count);
}


/**
* 获取两个日期之间一共有多少周,
* 注意周起始周一、周日、周六
Expand Down Expand Up @@ -377,59 +312,4 @@ public void differ() throws Exception {

assertEquals(7,CalendarUtil.differ(calendar1,calendar2));
}


/**
* 根据日期获取两个年份中第几周,用来设置 WeekView currentItem
*
* @throws Exception Exception
*/
@Test
public void getWeekFromCalendarBetweenYearAndYear() throws Exception {
Calendar calendar = new Calendar();

calendar.setYear(2018);
calendar.setMonth(1);
calendar.setDay(13);

int weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 1);
assertEquals(2, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 1, 2);
assertEquals(2, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 1, 7);
assertEquals(3, weekIndex);

calendar.setYear(2018);
calendar.setMonth(1);
calendar.setDay(31);

weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 1, 1);
assertEquals(5, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 1, 2);
assertEquals(5, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 1, 7);
assertEquals(5, weekIndex);

calendar.setYear(2018);
calendar.setMonth(2);
calendar.setDay(13);

weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 1);
assertEquals(3, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 2);
assertEquals(3, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 7);
assertEquals(3, weekIndex);

calendar.setYear(2018);
calendar.setMonth(3);
calendar.setDay(17);

weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 1);
assertEquals(7, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 2);
assertEquals(7, weekIndex);
weekIndex = CalendarUtil.getWeekFromCalendarBetweenYearAndYear(calendar, 2018, 2, 7);
assertEquals(8, weekIndex);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ public abstract class BaseView extends View implements View.OnClickListener, Vie
*/
protected Paint mCurMonthLunarTextPaint = new Paint();


/**
* 当前月份农历文本颜色
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public class CalendarLayout extends LinearLayout {
/**
* 年视图
*/
YearSelectLayout mYearView;
YearViewSelectLayout mYearView;

/**
* ContentView
Expand Down Expand Up @@ -481,7 +481,7 @@ protected void onFinishInflate() {
mMonthView = (MonthViewPager) findViewById(R.id.vp_month);
mWeekPager = (WeekViewPager) findViewById(R.id.vp_week);
mContentView = (ViewGroup) findViewById(mContentViewId);
mYearView = (YearSelectLayout) findViewById(R.id.selectLayout);
mYearView = (YearViewSelectLayout) findViewById(R.id.selectLayout);
if (mContentView != null) {
mContentView.setOverScrollMode(View.OVER_SCROLL_NEVER);
}
Expand Down
Loading

0 comments on commit 29e3929

Please sign in to comment.