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));
|
}
|
|
}
|