日历选择缩略

使用的控件 DatePicker


默认的DatePicker
android日历之滚动选择日期类似ios_第1张图片

添加如下代码即可设置成滚动的选择日历

android:datePickerMode=”spinner”
android:calendarViewShown=”false”


初始化日历控件设置
调用初始化方法

public void init(int year, int monthOfYear, int dayOfMonth,
OnDateChangedListener onDateChangedListener)

参数内容分别对应年、月、日

注意:

我们设置不同语言的日历,年月日显示的顺序是不一样的
所以我们要判断语言(特别的只显示部分时间,例如只显示年、月或者只显示年份等)
我们创建一个实例对象mDatePicker

if ( mDatePicker != null) {            if (getResources().getConfiguration().locale.getCountry().equals("CN")){                ((ViewGroup)((ViewGroup) mDatePicker.getChildAt(0)).getChildAt(0)).getChildAt(2).setVisibility(View.GONE);            }            else{                ((ViewGroup)((ViewGroup) mDatePicker.getChildAt(0)).getChildAt(0)).getChildAt(1).setVisibility(View.GONE);            }        }

上述代码是只显示年、月,去除日,对于语言是中文,我们隐藏最后一行的view 。 对于语言是英语我们隐藏中间的view。


以上就可以显示对应的日期了,同时我们系统默认的分割线是蓝色的,我们可以自定义分割线颜色。调用如下函数
,颜色修改R.color.green

private void setDatePickerDividerColor(DatePicker datePicker){        // 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(this.getResources().getColor(R.color.green)));                    } catch (IllegalArgumentException e) {                        e.printStackTrace();                    } catch (Resources.NotFoundException e) {                        e.printStackTrace();                    } catch (IllegalAccessException e) {                        e.printStackTrace();                    }                    break;                }            }        }    }

更多相关文章

  1. C语言函数以及函数的使用
  2. 八款android日历 [Calendar] 开源项目框架分类总汇
  3. Android日历只显示年月,只显示年
  4. android webkit 初始化流程
  5. Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (三)Andro
  6. 【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集
  7. Android中的日历读写操作!!!
  8. 日历视图的XML属性
  9. Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (一)概述

随机推荐

  1. IOS开发之——入门
  2. [置顶] Android 实现对话框圆角功能
  3. Android(安卓)Handler(说说我的理解)
  4. Android的网络应用 - 简单的C/S聊天室
  5. Android使用http协议与服务器通信
  6. Android 中的 OpenGL 简单入门 (下)
  7. Android TestView文本文字修改实例
  8. 转Android系统架构
  9. Android Studio技巧和窍门
  10. Android 开发Rect