android Material Calendar View的日期颜色修改~_materialcalendarview 设置当天日期的背景_gonelikefly的博客-程序员秘密

技术标签: android学习  

https://github.com/prolificinteractive/material-calendarview

  最近在实现一个日期功能,接触到了这个优秀的android端的三方控件。关于这个控件的一些其他自定义需求(给特定日期下面加点、修改title等),有很多相关的blog,我就不在这里写了。这一篇主要是写一下怎么修改日期的颜色。(好像没找到相关的文章

  其实这个控件的具体实现是使用viewpager等实现的,每一个日期都是一个格子(DayView)。我这里需要实现的需求是,将周六日的日期变成灰色。

  1、将星期栏的周六日变成灰色。在weekdayview这个类中修改如下代码:

public void setDayOfWeek(int dayOfWeek) {
        this.dayOfWeek = dayOfWeek;
        if(dayOfWeek == 1 || dayOfWeek == 7){
            setText(Html.fromHtml("<font color=\"#999090\">"+formatter.format(dayOfWeek)+"</font>"));
        }else {
            setText(formatter.format(dayOfWeek));
        }
    }
  2、将日期栏中的所有周六日日期变成灰色。在DayView类中作如下修改:找到所有使用到setText()方法的地方,包括setDay(), setDayFormatter()和applyFacade().在setText下面添加如下代码

if (dd == 1 || dd == 7) {
            setTextAppearance(R.style.CustomTextApp2);
        }

这里的dd变量为我新加的标识星期的变量,需要在DayView中增加一个本地int变量,同时在构造函数里添加。

   public DayView(Context context, CalendarDay day , int i) {
        super(context);

        fadeTime = getResources().getInteger(android.R.integer.config_shortAnimTime);

        setSelectionColor(this.selectionColor);
        this.dd = i;//传入星期
        setGravity(Gravity.CENTER);
        setTextSize(30);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            setTextAlignment(TEXT_ALIGNMENT_CENTER);
        }
        setDay(day);
    }

然后在CalendarPageView类中使用到DayView方法的地方传入这个星期变量:

    protected void addDayView(Collection<DayView> dayViews, Calendar calendar) {
        CalendarDay day = CalendarDay.from(calendar);
        int i = calendar.get(Calendar.DAY_OF_WEEK);
        DayView dayView = new DayView(getContext(), day ,i);
        dayView.setOnClickListener(this);
        dayViews.add(dayView);
        addView(dayView, new LayoutParams());
        calendar.add(DATE, 1);
    }


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gonelikefly/article/details/78390543

智能推荐

JDK8并行流_jdk 并行流_yongqi_wang的博客-程序员秘密

以前写过的一个并行流Demo,记得当初一个群里的小朋友非说并行流执行快,我较真的测试了一次,然而现实说明,没有亲自试验过的说法永远都是不可信的。虽然我这个逻辑并不能真正的证明实际业务中并行流一定不如基础方法,但是在一定程度上的表达了新技术方案不是随便就可以使用的。import java.util.ArrayList;import java.util.List;import java....

鸿蒙花了多少钱,鸿蒙来了!_Jakcwin的博客-程序员秘密

6月2日, 华为 正式发布鸿蒙 HarmonyOS 2,HUAWEI Mate 40手机等多款搭载HarmonyOS 2的新产品集中亮相。同时,华为 平板 、 智慧屏 等近百款 设备 也将陆续启动HarmonyOS 2升级。“手机有手机的 操作系统 ,Pad有Pad操作系统, 智能手表 有操作系统,电视、汽车都有自己的操作系统,但是这些系统的体验是 割裂 的, 连接 复杂、操控繁杂。”华为常务董事...

java httppost 400_java – HTTP状态400 – 必需字符串参数’walletName’不存在_微尘-黄含驰的博客-程序员秘密

我使用Java / Spring MVC RESTful应用程序,并在执行POST请求时获得400 HTTP状态错误.提供了@RestController方法,@RequestMapping(value = "/generateAddress", method = RequestMethod.POST)public ResponseEntity generateAddress(@RequestPa...

WebRTC SDP 详解和剖析_阿里云视频云的博客-程序员秘密

WebRTC 是 Web Real-Time Communication,即网页实时通信的缩写,是 RTC 协议的一种 Web 实现,项目由 Google 开源,并和 IETF 和 W3C 制定了行业标准。在国内 WebRTC 已经获得了越来越多厂商的支持,应用前景变得更加广阔,所以我们也开设专栏,分享阿里云内部的 WebRTC 研究工作。本篇是阿里云视频云 WebRTC 技术专栏系列文章的第一篇,作者将从 WebRTC SDP 例子和关键属性的角度为大家深度剖析解读,其中也分享了阿里云技术专家的一些实践

html5绘制图形幸运大转盘,幸运大转盘 - 慧编程 - 专注于青少年 STEAM 教育的图形化编程平台..._weixin_39710106的博客-程序员秘密

案例详情1.实现效果按下板载按钮后,开始一次抽奖,大转盘的指针不断旋转,然后随机停留在一个位置上,指针指向的盘面就能获得相对应的奖品。2.实现思路为了实现每次指针的指向无法预测,需要使用随机数。可以将指针旋转的次数(每次旋转15度)设置为一定范围内的随机数,从而实现每次按下板载按钮,最后指针的指向都是随机的。3.实现过程1)删除舞台上默认的熊猫角色,点击新建角色里的“画笔”图标,绘制新角色,此时跳...

随便推点

谷歌从IBM购买千项专利 巩固Android专利防线_最骚的就是你的博客-程序员秘密

信息显示,谷歌在8月17日完成了上述专利的购买。谷歌发言人吉姆·普罗瑟(Jim Prosser)周三证实了这一消息,但并未给出详细说明和收购金额。IBM发言人克里斯·安德鲁斯(Chris Andrews)也并未予以置评。这些专利覆盖面很广泛,从服务器架构到无线设备都有。SEO by the Sea的Bill Slawski在分析了这些专利之后认为其中谷歌最感兴趣的应该是以下这些跟手

使用VS2017+GStreamer配置时遇到的坑,LNK2019_configure narrow argv_wde的博客-程序员秘密

做个笔记,日后有朋友遇到希望能快速搞定搞定下面这个问题,只需要:项目-&amp;gt; 属性-&amp;gt;链接器-&amp;gt;高级-&amp;gt;入口点:填入:main   严重性    代码    说明    项目    文件    行    禁止显示状态错误    LNK2019    无法解析的外部符号 _seh_filter_exe,该符号在函数 &quot;int `int __cdecl _...

ComboBox控件绑定数据源_1361976860的博客-程序员秘密

最近在研究机房收费系统的组合查询的方法时,看到了ComboBox控件可以进行数据绑定,我觉得这个功能真的很不错,可以给我省去很多的麻烦。下面是我组合查询窗体界面 一、数据转换方法现在我们开看一下我以前写的一段代码:1、在界面初始化的时候向ComboBox中添加数据 ''' &lt;summary&gt; ''' 添加界面 ''' &lt;...

javamail定时读取邮箱的未读邮件(imap)_天下五折的博客-程序员秘密

为啥不用pop3而用imap,是因为imap能把邮件设置为已读,而pop3不能;使用javamail mail.imap读取邮箱的邮件,综合网上的例子,贴出自己实际使用的代码供大家参考:步骤: 1、设置被读取邮箱的安全性,允许我们的系统读取邮件,例如:网易邮箱,当读取邮件的时候,网易的邮箱会受到一封标题为“网易邮箱提醒:阻止了一次不安全的收信请求“的邮件,第二部:读取邮

VMware黑群晖6.1安装记录_synoboot.img_加班的小狮子的博客-程序员秘密

写在前面因对群晖以及nas等不太了解,故先通过黑群晖进行安装体验,以下为安装过程记录。有条件请支持正版!有条件请支持正版!有条件请支持正版!准备工具DSM_DS3615xs_15217.pat(其他6.1的版本应该也可以,有时间尝试一下) 【下载】synoboot.img(引导文件,据说需要和dsm版本相匹配,有空尝试一下其他的)【j4sv】RoadkilsDiskImage(写盘工具)【udxl】Synology Assistant(群晖助手) 【wr29】步骤1.新建虚拟机

VC++动态链接库编程之MFC扩展DLL_vc_mfc扩展包_I_Have_123456的博客-程序员秘密

前文我们对非MFC DLL和MFC规则DLL进行了介绍,现在开始详细分析DLL的最后一种类型――MFC扩展DLL。6.1概论MFC扩展DLL与MFC规则DLL的相同点在于在两种DLL的内部都可以使用MFC类库,其不同点在于MFC扩展DLL与应用程序的接口可以是MFC的。MFC扩展DLL的含义在于它是MFC的扩展,其主要功能是实现从现有MFC库类中派生出可重用的类。MFC扩展DLL使用MFC

推荐文章

热门文章

相关标签