国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 中NumberPicker,DatePicker與DatePickerDialog中分割顏色的修改實例代碼

2019-12-12 03:31:28
字體:
來源:轉載
供稿:網友

Android 中NumberPicker,DatePicker與DatePickerDialog中分割顏色的修改實例代碼

前言: 開發中,為了應用整體美觀,需要保持控件的色調和主題色保持一致,

例如:NumberPicker、DatePicker和DatePickerDialog的分割線顏色

一、NumberPicker的分割線顏色

我把對NumberPicker分割線顏色的方法寫在一個工具類中,便于全局調用,代碼如下:

public static void setNumberPickerDividerColor(Context context, NumberPicker numberPicker) {    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(context.getResources().getColor(R.color.theme_pink)));        } catch (IllegalArgumentException e) {          e.printStackTrace();        } catch (Resources.NotFoundException e) {          e.printStackTrace();        } catch (IllegalAccessException e) {          e.printStackTrace();        }        break;      }    }  }

二、DatePicker的分割線顏色

查看DataPicker的源碼可以看到,DatePacker也是NumberPicker實現的,所以主要思想,還是修改NumberPicker分割線的顏色,代碼如下:

public static void setDatePickerDividerColor(Context context, DatePicker datePicker){    // 獲取 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(context.getResources().getColor(R.color.theme_pink)));          } catch (IllegalArgumentException e) {            e.printStackTrace();          } catch (Resources.NotFoundException e) {            e.printStackTrace();          } catch (IllegalAccessException e) {            e.printStackTrace();          }          break;        }      }    }  }

二、DatePickerDialog的分割線顏色

實現思路:拿到Dialog中DatePicker就可以改變分割先的顏色,主要代碼如下:

DatePickerDialog datePickerDialog =     new DatePickerDialog(mContext, 0, listener, year, month, day);    datePickerDialog.setTitle("選擇年月");    datePickerDialog.show();    DatePicker datePicker = datePickerDialog.getDatePickerStart(); //獲取DatePicker    CommonUtil.setDatePickerDividerColor(mContext, datePicker); //設置分割線顏色    /*修改按鈕顏色這個必須在show或者create方法后面*/    Button commitBtn = datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE); //確認按鈕    commitBtn.setTextColor(Color.parseColor("#e8615e"));

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白朗县| 宁陵县| 琼海市| 蒙自县| 海门市| 淮北市| 仙居县| 宜君县| 安阳县| 温泉县| 兴城市| 西丰县| 青浦区| 保靖县| 理塘县| 芷江| 拉萨市| 太谷县| 调兵山市| 巴林右旗| 武清区| 泗阳县| 来宾市| 彭山县| 巨鹿县| 九江市| 云阳县| 沙洋县| 安庆市| 通州区| 运城市| 曲松县| 长武县| 天津市| 宁海县| 五常市| 峨山| 台中县| 监利县| 响水县| 青龙|