Вызов метода onDraw () для пользовательского представления в Android

Я создал CustomView для календаря. У меня есть метод onDraw для рисования текста в календаре. Я хочу изменить цвет текста дня, когда я нажимаю на него. Как я могу этого достичь?

CalendarView.java:

package com.example.calendar_module;

import java.util.Calendar;

import android.app.ActionBar.LayoutParams;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.MonthDisplayHelper;
import android.view.MotionEvent;
import android.widget.ImageView;

public class CalendarView extends ImageView {

private static int WEEK_TOP_MARGIN = 0;
private static int WEEK_LEFT_MARGIN = 05;
private static int CELL_WIDTH = 20;
private static int CELL_HEIGH = 20;
private static int CELL_MARGIN_TOP = 05;
private static int CELL_MARGIN_LEFT = 29;
private static float CELL_TEXT_SIZE;
private static int CALENDAR_WIDTH;
private static int CALENDAR_HEIGHT;

private static final String TAG = "CalendarView"; 
private String[] mDayString = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
private Calendar mRightNow = null;
private Drawable mWeekTitle = null;
private Cell mToday = null;
private Cell[][] mCells = new Cell[6][7];
private Cell[] mDayCells = new Cell[7];
private OnCellTouchListener mOnCellTouchListener = null;
MonthDisplayHelper mHelper;
Drawable mDecoration = null;

public interface OnCellTouchListener {
    public void onTouch(Cell cell);
}

public CalendarView(Context context) {
    this(context, null);
}

public CalendarView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}

public CalendarView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    mDecoration = context.getResources().getDrawable(R.drawable.typeb_calendar_today);      
    initCalendarView();
}

private void initCalendarView() {

    mRightNow = Calendar.getInstance();
    // prepare static vars

    Resources res = getResources();
    WEEK_TOP_MARGIN  = (int) res.getDimension(R.dimen.week_top_margin);
    WEEK_LEFT_MARGIN = (int) res.getDimension(R.dimen.week_left_margin);

    CELL_WIDTH = (int) res.getDimension(R.dimen.cell_width);
    CELL_HEIGH = (int) res.getDimension(R.dimen.cell_heigh);
    CELL_MARGIN_TOP = (int) res.getDimension(R.dimen.cell_margin_top);
    CELL_MARGIN_LEFT = (int) res.getDimension(R.dimen.cell_margin_left);
   //       CALENDAR_HEIGHT = 700;
  //        CALENDAR_WIDTH = 700;
  //        
    CALENDAR_HEIGHT = (int) res.getDimension(R.dimen.calendar_height);
    CALENDAR_WIDTH = (int) res.getDimension(R.dimen.calendar_width);

    System.out.println("Width and Hight :"+CALENDAR_WIDTH+" "+CALENDAR_HEIGHT);
    System.out.println("Dimen Width and Height : "+R.dimen.calendar_width+" "+R.dimen.calendar_height);

    CELL_TEXT_SIZE = res.getDimension(R.dimen.cell_text_size);
    // set background
  //        setImageResource(R.drawable.background);
    mWeekTitle = res.getDrawable(R.drawable.calendar_week);

    mHelper = new MonthDisplayHelper(mRightNow.get(Calendar.YEAR), mRightNow.get(Calendar.MONTH));


}

private void initCells() {

    class _calendar {
        public int day;
        public boolean thisMonth;
        public _calendar(int d, boolean b) {
            day = d;
            thisMonth = b;
        }
        public _calendar(int d) {
            this(d, false);
        }
    };
    _calendar tmp[][] = new _calendar[6][7];

    for(int i=0; i

Ответы на вопрос(1)

Ваш ответ на вопрос