当前位置:   article > 正文

Android android-times-square一款好用的日历控件_calendarpickerview 重新绘画

calendarpickerview 重新绘画


最近在项目中使用到了 android-times-square  日历控件,在网上搜了挺多博客结果都不是很满意,到 git 上看了源码。终于达到了自己想要的效果

以下是我使用的一些小细节,希望可以帮到第一次使用 android-times-square 的你。

1、先将 android-times-square 依赖到项目中去:

  compile 'com.squareup:android-times-square:1.6.5@aar'

2、在布局中使用 CalendarPickerView :


3、使用

  1. public class MainActivity extends AppCompatActivity {
  2. private CalendarPickerView pickerView;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. pickerView= (CalendarPickerView) findViewById(R.id.calendar);//初始化日历控件
  8. //将自定义的日期设置配置到日历中
  9. SampleDecorator decorator=new SampleDecorator(this);
  10. List<CalendarCellDecorator> d=new ArrayList<>();
  11. d.add(decorator);
  12. pickerView.setDecorators(d);
  13. //设置日历可显示的时间 add()第一个参数可选为 Week,Month,Year 第二个参数为第一个参数的数量
  14. Calendar nextYear = Calendar.getInstance();
  15. nextYear.add(Calendar.YEAR, 2);
  16. Date today = new Date();
  17. //默认设置智能选择一个日期
  18. // pickerView.init(today, nextYear.getTime()).withSelectedDate(today);
  19. //如果想要选择多个日期,使用下面这行代码 通过inMode()可以选择三种形式的选择模式
  20. pickerView.init(today, nextYear.getTime()).inMode(CalendarPickerView.SelectionMode.RANGE);
  21. }
  22. }

4、如果想要实现自定义日期的效果 需要自己定义一个类实现 CalendarCellDecorator 重写里面的方法来设置自己的日期背景 字体等效果

  1. public class SampleDecorator implements CalendarCellDecorator {
  2. private Context context;
  3. public SampleDecorator(Context context) {
  4. this.context = context;
  5. }
  6. @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
  7. @Override
  8. public void decorate(CalendarCellView cellView, Date date) {
  9. if (cellView.isSelectable()) { //先通过是否可选方法来区分时间,如果可选则再判断是否已选
  10. if (cellView.isSelected()) {//再通过是否已选来设置日期的背景图片
  11. cellView.setBackground(context.getResources().getDrawable(R.mipmap.ic_launcher_round, null));
  12. } else {
  13. cellView.setBackground(context.getResources().getDrawable(R.mipmap.time_13x, null));
  14. }
  15. }else {//如果为不可选时间则直接设置日期背景
  16. cellView.setBackground(context.getResources().getDrawable(R.mipmap.time_23x,null));
  17. }
  18. }
  19. }
这里我只是简单的配置了不同状态下的日期背景。


到这里你应该就可以简单的使用 android-times-square 了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/543291
推荐阅读
相关标签
  

闽ICP备14008679号