我是靠谱客的博主 孝顺茉莉,最近开发中收集的这篇文章主要介绍修改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分割线和中间冒号的颜色所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部