꾸준히 안타치기
달력 / 오늘날짜 표기 / 특정날짜 표기 / 본문
반응형
note activity
public class note_activity extends AppCompatActivity {
final OneDayDecorator oneDayDecorator = new OneDayDecorator();
MaterialCalendarView materialCalendarView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note);
// 오늘날짜 표기
final OneDayDecorator oneDayDecorator = new OneDayDecorator();
// 달력값 가져오기
materialCalendarView = (MaterialCalendarView) findViewById(R.id.calendar_view);
materialCalendarView.state().edit()
.setFirstDayOfWeek(Calendar.SUNDAY)
.setMinimumDate(CalendarDay.from(2017, 0, 1))
.setMaximumDate(CalendarDay.from(2030, 11, 31))
.setCalendarDisplayMode(CalendarMode.MONTHS)
.commit();
// 달력데코
materialCalendarView.addDecorators(
new SundayDecorator(),
new SaturdayDecorator(),
// 오늘 날짜 표기
oneDayDecorator,
// 점찍기, 알람을 작동한 날짜에 점찍히게 하기???????
new EventDecorator(Color.BLACK, Collections.singleton(CalendarDay.today()),this)
);
OneDayDecorator // 오늘 날짜 표기
package com.example.myapplication.note;
import android.graphics.Color;
import android.graphics.Typeface;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.StyleSpan;
import com.prolificinteractive.materialcalendarview.CalendarDay;
import com.prolificinteractive.materialcalendarview.DayViewDecorator;
import com.prolificinteractive.materialcalendarview.DayViewFacade;
import java.util.Date;
// 오늘날짜 표기
public class OneDayDecorator implements DayViewDecorator {
private CalendarDay date;
public OneDayDecorator() {
date = CalendarDay.today();
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return date != null && day.equals(date);
}
@Override
public void decorate(DayViewFacade view) {
view.addSpan(new StyleSpan(Typeface.BOLD));
view.addSpan(new RelativeSizeSpan(1.4f));
view.addSpan(new ForegroundColorSpan(Color.GREEN));
}
public void setDate(Date date) {
this.date = CalendarDay.from(date);
}
}
EventDecorator // 특정일 선택해 표기
package com.example.myapplication.note;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import com.example.myapplication.R;
import com.prolificinteractive.materialcalendarview.CalendarDay;
import com.prolificinteractive.materialcalendarview.DayViewDecorator;
import com.prolificinteractive.materialcalendarview.DayViewFacade;
import com.prolificinteractive.materialcalendarview.spans.DotSpan;
import java.util.Collection;
import java.util.HashSet;
/**
* Decorate several days with a dot
*/
public class EventDecorator implements DayViewDecorator {
private final Drawable drawable;
private final int color;
private HashSet<CalendarDay> dates;
public EventDecorator(int color, Collection<CalendarDay> dates, Activity context) {
drawable = context.getResources().getDrawable(R.drawable.my_selector);
this.color = color;
this.dates = new HashSet<>(dates);
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return dates.contains(day);
}
@Override
public void decorate(DayViewFacade view) {
view.setSelectionDrawable(drawable);
view.addSpan(new DotSpan(5, color)); // 날자밑에 점 넣기
}
}
SaturdayDecorator / 토요일 표기
public class SaturdayDecorator implements DayViewDecorator {
private final Calendar calendar = Calendar.getInstance();
public SaturdayDecorator() {
}
@Override
public boolean shouldDecorate(CalendarDay day) {
day.copyTo(calendar);
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
return weekDay == Calendar.SATURDAY;
}
@Override
public void decorate(DayViewFacade view) {
view.addSpan(new ForegroundColorSpan(Color.BLUE));
}
}
SundayDecorator/ 일요일 표기
// (안드유틸말고) 자바유틸로 임포트 하기
public class SundayDecorator implements DayViewDecorator {
private final Calendar calendar = Calendar.getInstance();
public SundayDecorator() {
}
@Override
public boolean shouldDecorate(CalendarDay day) {
day.copyTo(calendar);
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
return weekDay == Calendar.SUNDAY;
}
@Override
public void decorate(DayViewFacade view) {
view.addSpan(new ForegroundColorSpan(Color.RED));
}
}
반응형
'Android _ 서버연동_채팅 > Android - UI' 카테고리의 다른 글
Bottom popup / color 선택 변경하기 / 노트 (0) | 2021.02.24 |
---|---|
카카오톡 연동 API사용 (0) | 2021.02.22 |
커스텀 달력만들기 (0) | 2021.02.21 |
키보드 숨기기 / Edit text 키보드 가리기 (0) | 2021.02.12 |
그래프 차트 가져다 쓰기 (0) | 2021.02.11 |
Comments