public TimePickerLayout(Context context) { super(context); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setTextAlign(Paint.Align.LEFT); mHeaderBackground = new Path(); mRect = new RectF(); mAmView = new CircleCheckedTextView(context); mPmView = new CircleCheckedTextView(context); mTimePicker = new TimePicker(context); mTimePicker.setPadding(mContentPadding, mContentPadding, mContentPadding, mContentPadding); mTimePicker.setOnTimeChangedListener(this); mAmView.setGravity(Gravity.CENTER); mPmView.setGravity(Gravity.CENTER); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ mAmView.setTextAlignment(TEXT_ALIGNMENT_CENTER); mPmView.setTextAlignment(TEXT_ALIGNMENT_CENTER); } mAmView.setCheckedImmediately(mIsAm); mPmView.setCheckedImmediately(!mIsAm); mAmView.setOnClickListener(this); mPmView.setOnClickListener(this); addView(mTimePicker); addView(mAmView); addView(mPmView); setWillNotDraw(false); mCheckBoxSize = ThemeUtil.dpToPx(context, 48); mHeaderHeight = ThemeUtil.dpToPx(context, 120); mTextTimeSize = context.getResources().getDimensionPixelOffset(R.dimen.abc_text_size_headline_material); }
@Override public View getView(int position, View convertView, ViewGroup parent) { CircleCheckedTextView v = (CircleCheckedTextView)convertView; if(v == null){ v = new CircleCheckedTextView(getContext()); v.setGravity(Gravity.CENTER); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) v.setTextAlignment(TEXT_ALIGNMENT_CENTER); v.setMinHeight(mItemRealHeight); v.setMaxHeight(mItemRealHeight); v.setAnimDuration(mAnimDuration); v.setInterpolator(mInInterpolator, mOutInterpolator); v.setBackgroundColor(mSelectionColor); v.setTypeface(mTypeface); v.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize); v.setTextColor(new ColorStateList(STATES, mTextColors)); v.setOnClickListener(this); } int year = (Integer)getItem(position); v.setTag(year); v.setText(String.format(YEAR_FORMAT, year)); v.setCheckedImmediately(year == mCurYear); return v; } }