android calendar with canvas -


hi want display date image. how this??,please me.. in advance..

 public class mycalendaractivity extends activity implements onclicklistener {     private static final string tag = "mycalendaractivity";      private textview currentmonth;     private button selecteddaymonthyearbutton;     private imageview prevmonth;     private imageview nextmonth;     private gridview calendarview;     private gridcelladapter adapter;     private calendar _calendar;     @suppresslint("newapi")     private int month, year;     @suppresswarnings("unused")     @suppresslint({ "newapi", "newapi", "newapi", "newapi" })     private final dateformat dateformatter = new dateformat();     private static final string datetemplate = "mmmm yyyy";      /** called when activity first created. */     @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.my_calendar_view);          _calendar = calendar.getinstance(locale.getdefault());         month = _calendar.get(calendar.month) + 1;         year = _calendar.get(calendar.year);         log.d(tag, "calendar instance:= " + "month: " + month + " " + "year: "                 + year);          selecteddaymonthyearbutton = (button)                 .findviewbyid(r.id.selecteddaymonthyear);         selecteddaymonthyearbutton.settext("selected: ");          prevmonth = (imageview) this.findviewbyid(r.id.prevmonth);         prevmonth.setonclicklistener(this);          currentmonth = (textview) this.findviewbyid(r.id.currentmonth);         currentmonth.settext(dateformat.format(datetemplate,                 _calendar.gettime()));          nextmonth = (imageview) this.findviewbyid(r.id.nextmonth);         nextmonth.setonclicklistener(this);          calendarview = (gridview) this.findviewbyid(r.id.calendar);          // initialised         adapter = new gridcelladapter(getapplicationcontext(),                 r.id.calendar_day_gridcell, month, year);         adapter.notifydatasetchanged();         calendarview.setadapter(adapter);     }      /**      *       * @param month      * @param year      */     private void setgridcelladaptertodate(int month, int year) {         adapter = new gridcelladapter(getapplicationcontext(),                 r.id.calendar_day_gridcell, month, year);         _calendar.set(year, month - 1, _calendar.get(calendar.day_of_month));         currentmonth.settext(dateformat.format(datetemplate,                 _calendar.gettime()));         adapter.notifydatasetchanged();         calendarview.setadapter(adapter);     }      @override     public void onclick(view v) {         if (v == prevmonth) {             if (month <= 1) {                 month = 12;                 year--;             } else {                 month--;             }             log.d(tag, "setting prev month in gridcelladapter: " + "month: "                     + month + " year: " + year);             setgridcelladaptertodate(month, year);         }         if (v == nextmonth) {             if (month > 11) {                 month = 1;                 year++;             } else {                 month++;             }             log.d(tag, "setting next month in gridcelladapter: " + "month: "                     + month + " year: " + year);             setgridcelladaptertodate(month, year);         }      }      @override     public void ondestroy() {         log.d(tag, "destroying view ...");         super.ondestroy();     }      // ///////////////////////////////////////////////////////////////////////////////////////     // inner class     public class gridcelladapter extends baseadapter implements onclicklistener {         private static final string tag = "gridcelladapter";         private final context _context;          private final list<string> list;         private static final int day_offset = 1;         private final string[] weekdays = new string[] { "sun", "mon", "tue",                 "wed", "thu", "fri", "sat" };         private final string[] months = { "january", "february", "march",                 "april", "may", "june", "july", "august", "september",                 "october", "november", "december" };         private final int[] daysofmonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30,                 31, 30, 31 };         private int daysinmonth;         private int currentdayofmonth;         private int currentweekday;         private button gridcell;         private textview num_events_per_day;         private final hashmap<string, integer> eventspermonthmap;         private final simpledateformat dateformatter = new simpledateformat(                 "dd-mmm-yyyy");          // days in current month         public gridcelladapter(context context, int textviewresourceid,             int month, int year) {             super();             this._context = context;             this.list = new arraylist<string>();             log.d(tag, "==> passed in date month: " + month + " "                     + "year: " + year);             calendar calendar = calendar.getinstance();             setcurrentdayofmonth(calendar.get(calendar.day_of_month));             setcurrentweekday(calendar.get(calendar.day_of_week));             log.d(tag, "new calendar:= " + calendar.gettime().tostring());             log.d(tag, "currentdayofweek :" + getcurrentweekday());             log.d(tag, "currentdayofmonth :" + getcurrentdayofmonth());              // print month             printmonth(month, year);              // find number of events             eventspermonthmap = findnumberofeventspermonth(year, month);         }          private string getmonthasstring(int i) {             return months[i];         }          private string getweekdayasstring(int i) {             return weekdays[i];         }          private int getnumberofdaysofmonth(int i) {             return daysofmonth[i];         }          public string getitem(int position) {             return list.get(position);         }          @override         public int getcount() {             return list.size();         }          /**          * prints month          *           * @param mm          * @param yy          */         private void printmonth(int mm, int yy) {             log.d(tag, "==> printmonth: mm: " + mm + " " + "yy: " + yy);             // number of days leave blank @             // start of month.             int trailingspaces = 0;             int daysinprevmonth = 0;             int prevmonth = 0;             int prevyear = 0;             int nextmonth = 0;             int nextyear = 0;              int currentmonth = mm - 1;             string currentmonthname = getmonthasstring(currentmonth);             daysinmonth = getnumberofdaysofmonth(currentmonth);              log.d(tag, "current month: " + " " + currentmonthname + " having "                     + daysinmonth + " days.");              // gregorian calendar : minus 1, set first of month             gregoriancalendar cal = new gregoriancalendar(yy, currentmonth, 1);             log.d(tag, "gregorian calendar:= " + cal.gettime().tostring());              if (currentmonth == 11) {                 prevmonth = currentmonth - 1;                 daysinprevmonth = getnumberofdaysofmonth(prevmonth);                 nextmonth = 0;                 prevyear = yy;                 nextyear = yy + 1;                 log.d(tag, "*->prevyear: " + prevyear + " prevmonth:"                         + prevmonth + " nextmonth: " + nextmonth                         + " nextyear: " + nextyear);             } else if (currentmonth == 0) {                 prevmonth = 11;                 prevyear = yy - 1;                 nextyear = yy;                 daysinprevmonth = getnumberofdaysofmonth(prevmonth);                 nextmonth = 1;                 log.d(tag, "**--> prevyear: " + prevyear + " prevmonth:"                         + prevmonth + " nextmonth: " + nextmonth                         + " nextyear: " + nextyear);             } else {                 prevmonth = currentmonth - 1;                 nextmonth = currentmonth + 1;                 nextyear = yy;                 prevyear = yy;                 daysinprevmonth = getnumberofdaysofmonth(prevmonth);                 log.d(tag, "***---> prevyear: " + prevyear + " prevmonth:"                         + prevmonth + " nextmonth: " + nextmonth                         + " nextyear: " + nextyear);             }              // compute how leave before before first day of             // month.             // getday() returns 0 sunday.             int currentweekday = cal.get(calendar.day_of_week) - 1;             trailingspaces = currentweekday;              log.d(tag, "week day:" + currentweekday + " "                     + getweekdayasstring(currentweekday));             log.d(tag, "no. trailing space add: " + trailingspaces);             log.d(tag, "no. of days in previous month: " + daysinprevmonth);              if (cal.isleapyear(cal.get(calendar.year)) && mm == 1) {                 ++daysinmonth;             }              // trailing month days             (int = 0; < trailingspaces; i++) {                 log.d(tag,                         "prev month:= "                                 + prevmonth                                 + " => "                                 + getmonthasstring(prevmonth)                                 + " "                                 + string.valueof((daysinprevmonth                                         - trailingspaces + day_offset)                                         + i));                 list.add(string                         .valueof((daysinprevmonth - trailingspaces + day_offset)                                 + i)                         + "-grey"                         + "-"                         + getmonthasstring(prevmonth)                         + "-"                         + prevyear);             }              // current month days             (int = 1; <= daysinmonth; i++) {                 log.d(currentmonthname, string.valueof(i) + " "                         + getmonthasstring(currentmonth) + " " + yy);                 if (i == getcurrentdayofmonth()) {                     list.add(string.valueof(i) + "-blue" + "-"                             + getmonthasstring(currentmonth) + "-" + yy);                 } else {                     list.add(string.valueof(i) + "-white" + "-"                             + getmonthasstring(currentmonth) + "-" + yy);                 }             }              // leading month days             (int = 0; < list.size() % 7; i++) {                 log.d(tag, "next month:= " + getmonthasstring(nextmonth));                 list.add(string.valueof(i + 1) + "-grey" + "-"                         + getmonthasstring(nextmonth) + "-" + nextyear);             }         }          /**          * note: need implement part given year, month, retrieve          * entries sqlite database month. iterate on          * list of entries, , datecreated, converted          * day.          *           * @param year          * @param month          * @return          */         private hashmap<string, integer> findnumberofeventspermonth(int year,                 int month) {             hashmap<string, integer> map = new hashmap<string, integer>();              return map;         }          @override         public long getitemid(int position) {             return position;         }          @override         public view getview(int position, view convertview, viewgroup parent) {             view row = convertview;             if (row == null) {                 layoutinflater inflater = (layoutinflater) _context                         .getsystemservice(context.layout_inflater_service);                 row = inflater.inflate(r.layout.screen_gridcell, parent, false);             }              // reference day gridcell             gridcell = (button) row.findviewbyid(r.id.calendar_day_gridcell);             gridcell.setonclicklistener(this);              // account spacing              log.d(tag, "current day: " + getcurrentdayofmonth());             string[] day_color = list.get(position).split("-");             string theday = day_color[0];             string themonth = day_color[2];             string theyear = day_color[3];             if ((!eventspermonthmap.isempty()) && (eventspermonthmap != null)) {                 if (eventspermonthmap.containskey(theday)) {                     num_events_per_day = (textview) row                             .findviewbyid(r.id.num_events_per_day);                     integer numevents = (integer) eventspermonthmap.get(theday);                     num_events_per_day.settext(numevents.tostring());                 }             }              // set day gridcell             gridcell.settext(theday);             gridcell.settag(theday + "-" + themonth + "-" + theyear);             log.d(tag, "setting gridcell " + theday + "-" + themonth + "-"                     + theyear);              if (day_color[1].equals("grey")) {                 gridcell.settextcolor(getresources()                         .getcolor(r.color.lightgray));             }             if (day_color[1].equals("white")) {                 gridcell.settextcolor(getresources().getcolor(                         r.color.lightgray02));             }             if (day_color[1].equals("blue")) {                 gridcell.settextcolor(getresources().getcolor(r.color.orrange));             }             return row;         }          @override         public void onclick(view view) {             string date_month_year = (string) view.gettag();             selecteddaymonthyearbutton.settext("selected: " + date_month_year);             log.e("selected date", date_month_year);              //new drawview(_context);             //view1. //          intent intent= new intent(getapplicationcontext(),mainactivity.class); //          startactivity(intent);               try {                 date parseddate = dateformatter.parse(date_month_year);                 log.d(tag, "parsed date: " + parseddate.tostring());  //              intent intent= new intent(getapplicationcontext(),mainactivity.class); //              startactivity(intent);              } catch (parseexception e) {                 e.printstacktrace();             }         }          public int getcurrentdayofmonth() {             return currentdayofmonth;         }          private void setcurrentdayofmonth(int currentdayofmonth) {             this.currentdayofmonth = currentdayofmonth;         }          public void setcurrentweekday(int currentweekday) {             this.currentweekday = currentweekday;         }          public int getcurrentweekday() {             return currentweekday;         }     }       public class mainactivity extends activity {          @override         protected void oncreate(bundle savedinstancestate) {             super.oncreate(savedinstancestate);             //setcontentview(r.layout.activity_main);             drawview view = new drawview(this);             view.setbackgroundcolor(color.white);             setcontentview(view);             //setcontentview(new drawview(this));         }      public class drawview extends view {         paint paint = new paint();          public drawview(context context) {             super(context);         }          @override         public void ondraw(canvas canvas) {             //paint.setcolor(color.black);             //paint.setstrokewidth(3);             //canvas.drawrect(30, 30, 80,80, paint);             //paint.setstrokewidth(0);             //paint.setcolor(color.cyan);             canvas.drawrect(30, 30, 80,80, paint);             paint.setcolor(color.red);             canvas.drawrect(30, 30, 80,80, paint);          }      }     }  } 


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -