package com.basic.security.utils; import android.app.Activity; import android.widget.DatePicker; import android.widget.NumberPicker; import java.lang.reflect.Field; public class DatePickerUtil { public static void setFont(Activity activity, DatePicker datepicker) { if (android.os.Build.VERSION.SDK_INT >= 20) initLollipop(activity, datepicker); else if (android.os.Build.VERSION.SDK_INT >= 14) initKitkat(activity, datepicker); } private static void initLollipop(Activity activity, DatePicker datepicker) { try { Field delegateField = datepicker.getClass().getDeclaredField( "mDelegate"); delegateField.setAccessible(true); Object delegate = new Object(); delegate = delegateField.get(datepicker); Field field = delegate.getClass().getDeclaredField("mDaySpinner"); setFont(activity, delegate, field); field = delegate.getClass().getDeclaredField("mMonthSpinner"); setFont(activity, delegate, field); field = delegate.getClass().getDeclaredField("mYearSpinner"); setFont(activity, delegate, field); setFontEditText(activity, delegate, delegate.getClass() .getDeclaredField("mDaySpinnerInput")); setFontEditText(activity, delegate, delegate.getClass() .getDeclaredField("mMonthSpinnerInput")); setFontEditText(activity, delegate, delegate.getClass() .getDeclaredField("mYearSpinnerInput")); } catch (SecurityException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { } catch (Exception e) { } } private static void initKitkat(Activity activity, DatePicker datepicker) { try { Field field = datepicker.getClass().getDeclaredField("mDaySpinner"); setFont(activity, datepicker, field); field = datepicker.getClass().getDeclaredField("mMonthSpinner"); setFont(activity, datepicker, field); field = datepicker.getClass().getDeclaredField("mYearSpinner"); setFont(activity, datepicker, field); setFontEditText(activity, datepicker, datepicker.getClass() .getDeclaredField("mDaySpinnerInput")); setFontEditText(activity, datepicker, datepicker.getClass() .getDeclaredField("mMonthSpinnerInput")); setFontEditText(activity, datepicker, datepicker.getClass() .getDeclaredField("mYearSpinnerInput")); } catch (SecurityException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { } catch (Exception e) { } } private static void setFont(Activity activity, Object datepicker, Field field) throws Exception { field.setAccessible(true); Object yearPicker = new Object(); yearPicker = field.get(datepicker); if (yearPicker instanceof NumberPicker) { NumberPicker npYear = (NumberPicker) yearPicker; } // ((View) yearPicker).setVisibility(View.VISIBLE); // //((View) yearPicker).setPadding(-2, 0, -2, 0); // // View childpicker; // childpicker = (View) activity.findViewById( // Resources.getSystem() // .getIdentifier("month", "id", "android")); Field field1 = yearPicker.getClass().getDeclaredField("mInputText"); field1.setAccessible(true); Object edittext = new Object(); edittext = field1.get(yearPicker); Field field2 = yearPicker.getClass().getDeclaredField( "mSelectorWheelPaint"); field2.setAccessible(true); Object paint = new Object(); paint = field2.get(yearPicker); // if (CustomFontTextview.sTypeface == null) // CustomFontTextview.sTypeface = Typeface.createFromAsset(activity.getAssets(), "customfont.ttf"); // ((Paint) paint).setTypeface(Typeface.create(CustomFontTextview.sTypeface, Typeface.BOLD)); //((Paint) paint).setTextSize(MainActivity); // ((Paint) paint).setColor(Color.RED); //((TextView) edittext).setTypeface(CustomFontTextview.sTypeface, Typeface.BOLD); // ((TextView) edittext).setTextColor(Color.RED); //((TextView) edittext).setTextSize(BaseApplication.getApplication().activity.getResources().getDimension(R.dimen.w14dp)); } private static void setFontEditText(Activity activity, Object datePicker, Field field) throws Exception { field.setAccessible(true); Object paint = new Object(); paint = field.get(datePicker); // if (CustomFontTextview.sTypeface == null) // CustomFontTextview.sTypeface = Typeface.createFromAsset(activity.getAssets(), "customfont.ttf"); // ((EditText) paint).setTypeface(CustomFontTextview.sTypeface,Typeface.BOLD); // ((EditText) paint).setTextColor(Color.RED); //((EditText) paint).setTextSize(BaseApplication.getApplication().activity.getResources().getDimension(R.dimen.w14dp)); } }