我是靠谱客的博主 孝顺茉莉,这篇文章主要介绍修改Android控件TimePicker分割线和中间冒号的颜色,现在分享给大家,希望可以做个参考。

先获取TimePicker中NumberPiker的控件id

        Resources systemResources = Resources.getSystem();
        int hourNumberPickerId = systemResources.getIdentifier("hour", "id", "android");
        int minuteNumberPickerId = systemResources.getIdentifier("minute", "id","android");
        int dividerId = Resources.getSystem().getIdentifier("divider", "id", "android"); //中间的冒号

DatePicker把hour、minute改为month、day、year

根据id获取NumberPiker控件和冒号,冒号是个TextView,可以直接设置颜色等属性

        NumberPicker endHour = (NumberPicker) timeEnd.findViewById(hourNumberPickerId);
        NumberPicker endMinute = (NumberPicker) timeEnd.findViewById(minuteNumberPickerId);
        TextView endDivider = timeStart.findViewById(dividerId);
        endDivider.setTextColor(getResources().getColor(R.color.white));

通过反射修改NumberPiker中横线的颜色

private void setNumberPickerDivider(NumberPicker numberPicker) {
        final int count = numberPicker.getChildCount();
        for(int i = 0; i < count; i++){
            try{
                Field dividerField = numberPicker.getClass().getDeclaredField("mSelectionDivider");
                dividerField.setAccessible(true);
                ColorDrawable colorDrawable = new ColorDrawable(
                        ContextCompat.getColor(this, android.R.color.white));
                dividerField.set(numberPicker,colorDrawable);
                numberPicker.invalidate();
            }
            catch(NoSuchFieldException | IllegalAccessException | IllegalArgumentException e){
                Log.w("setNumberPickerTxtClr", e);
            }
        }
    }

最后

以上就是孝顺茉莉最近收集整理的关于修改Android控件TimePicker分割线和中间冒号的颜色的全部内容,更多相关修改Android控件TimePicker分割线和中间冒号内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部