import java.lang.reflect.Field;
import android.annotation.SuppressLint;
import android.content.res.Resources;
import android.content.res.Resources.NotFoundException;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.widget.DatePicker;
import android.widget.LinearLayout;
import android.widget.NumberPicker;
/**
* 設置numberpicker ,DatePicker中間分割線顏色
*
*/
public class HalvingLineUtils {
/**
* 設置numberpicker分割線顏色
* color 爲空默認爲藍色
* @param numberPicker
* @param color 顏色 “#000000”
*/
@SuppressLint("NewApi")
public static void setNumberPickerDividerColor(NumberPicker numberPicker,String color) {
if(color==null || color.equals("")){
color="#0000FF";
}
NumberPicker picker = numberPicker;
Field[] pickerFields = NumberPicker.class.getDeclaredFields();
for (Field pf : pickerFields) {
if (pf.getName().equals("mSelectionDivider")) {
pf.setAccessible(true);
try {
//設置分割線的顏色值
pf.set(picker, new ColorDrawable(Color.parseColor(color)));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (Resources.NotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
break;
}
}
}
/**
* 設置時間選擇器DatePicker的分割線顏色
* color 爲空默認爲藍色
* @param datePicker
* @param color 顏色 “#000000”
*/
@SuppressLint("NewApi")
public static void setDatePickerDividerColor(DatePicker datePicker,String color){
if(color==null || color.equals("")){
color="#0000FF";
}
// Divider changing:
// 獲取 mSpinners
LinearLayout llFirst = (LinearLayout) datePicker.getChildAt(0);
// 獲取 NumberPicker
LinearLayout mSpinners = (LinearLayout) llFirst.getChildAt(0);
for (int i = 0; i < mSpinners.getChildCount(); i++) {
NumberPicker picker = (NumberPicker) mSpinners.getChildAt(i);
Field[] pickerFields = NumberPicker.class.getDeclaredFields();
for (Field pf : pickerFields) {
if (pf.getName().equals("mSelectionDivider")) {
pf.setAccessible(true);
try {
pf.set(picker, new ColorDrawable(Color.parseColor(color)));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (NotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
break;
}
}
}
}
}
設置numberpicker、DatePicker中間分割線顏色
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.