2016년 8월 19일 금요일

안드로이드 CalendarView 와 색상 설정


안드로이드 CalendarView 와 색상 설정



구글검색어 :
안드로이드 CalendarView 색상
android CalendarView title color

참고사이트 :

http://gakari.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-CalendarView%EB%A1%9C-%EC%89%BD%EA%B2%8C-%EB%8B%AC%EB%A0%A5%EC%9D%84-%EB%A7%8C%EB%93%A4%EC%9E%90

http://m.blog.naver.com/dlfghkjung/220632851185

alert_calendar.xml 

<?xml version="1.0" encoding="utf-8"?>
<!-- 달력 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    > <!-- android:background="#3ffa7f" -->

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <CalendarView android:id="@+id/cvPop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:focusedMonthDateColor="#3ffa7f"
            android:unfocusedMonthDateColor="#fafafa"
            />
    </LinearLayout>
</LinearLayout>

focusedMonthDateColor : 해당되는 월의 일자 색상
unfocusedMonthDateColor : 해당되지 않는 월의 일자 색상
showWeekNumber="false" 주에 좌측에 몇주차인지 보여줄지 여부
   true : 보여준다
   false : 표기하지  않는다

이 외에 여러가지 색상설정 및 기타 설정정보들이 있어요




-----

* 년월의 색상 변경

cvPop = (CalendarView)findViewById(R.id.cvPop);

try{
ViewGroup vg = (ViewGroup) cvPop.getChildAt(0);
View child = vg.getChildAt(0);
if(child instanceof TextView) {
((TextView)child).setTextColor(Color.BLACK);
}
}catch(Exception e){
;
}

-----

* 날짜 (년월일의 선택)

cvPop.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
  @Override
  public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
 setDate(year, month+1, dayOfMonth);
  }
});


-----

* 달력에서 스크롤만 했는데도 달력이 닫혀버리거나 이벤트가 발생하는 경우의 예외처리

cvPop.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
  @Override
  public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
 if(cvPop.getDate() != lDate){
  setDate(year, month+1, dayOfMonth);  
 }
  }
});

if(cvPop.getDate() != lDate);
달력이  로그될 때의 지정된 날짜와 다른 경우만 이벤트 처리를 해주면 돼요
달력을 닫거나, 특정  변수에 치환시켜주는 이벤트가 발생할 시의 작업을 하시면 돼요

즐거운 시간 보내세요~




댓글 1개:

  1. 혹시 작성하신 코드 깃헙에 올리신거 볼수있을까요?

    답글삭제