HarmonyOS应用开发日历练习 原创

鸿蒙时代
发布于 2021-6-9 11:26
浏览
0收藏

JLTFCalendar(日历)。语言,JAVA。显示当前日期。

 

一、具体效果呈现

 

运行项目后显示当月日历

  HarmonyOS应用开发日历练习-鸿蒙开发者社区

 

二、练习核心流程与代码

项目目录

  

HarmonyOS应用开发日历练习-鸿蒙开发者社区

 

 

 

 

 

 

MainAbilitySlice.java

// 星期
private final String[] days = new String[]{"日","一","二","三","四","五","六"};

@Override
public void onStart(Intent intent) {
    super.onStart(intent);
    // 新建table布局并设置样式
    TableLayout tableLayout =  new TableLayout(getContext());
    tableLayout.setWidth(LayoutConfig.MATCH_PARENT);
    tableLayout.setHeight(LayoutConfig.MATCH_PARENT);
    ShapeElement backgroundShape = new ShapeElement();
    backgroundShape.setRgbColor(new RgbColor(255,255,0));
    tableLayout.setBackground(backgroundShape);
    tableLayout.setRowCount(6);
    tableLayout.setColumnCount(7);

    // 循环星期
    for (String s : days) {
        // 调用text并设置值
        Text text = text();
        text.setText(s);
        // 追加到table布局中
        tableLayout.addComponent(text);
    }

    // 日期
    Date date = new Date();
    // 获取年
    int year = date.getYear();
    // 获取月
    int month = date.getMonth() + 1;
    // 获取日
    int today = date.getDate();
    // 当月的天数
    int Count= new Date(year, month, 0).getDate();
    // 当月的第一天的星期
    int day = new Date(year, new Date().getMonth(), 1).getDay();
    // 是否为星期日
    if(day != 0) {
        // 循环空格
        for (int i = 0; i < day; i++) {
            // 调用text并设置值
            Text text = text();
            text.setText("");
            // 追加到table布局中
            tableLayout.addComponent(text);
        }
    }

    // 循环天数
    for (int i = 1; i <= Count; i++) {
        // 调用text并设置值
        Text text = text();
        if(today == i) {
            text.setTextColor(Color.RED);
        }
        text.setText("" + i);
        // 追加到table布局中
        tableLayout.addComponent(text);
    }
    super.setUIContent(tableLayout);
}


public Text text() {
    Text text = new Text(getContext());
    text.setWidth(150);
    text.setHeight(150);
    text.setTextSize(100);
    text.setTextColor(Color.BLUE);
    text.setTextAlignment(TextAlignment.CENTER);
    return text;
}

 

难点一:设置行列数

解决方法:这里采用TableLayout表格布局

每周有七天所以是7列;每月天数最大为31天;

所以需要5行(因为每行至多7个);最后加上显示星期的一行

一共6行

背景颜色使用护眼色

难点二:每月第一天的星期的位置

解决方法:设置空白格

空格数为每月的第一天的星期数(0表示星期日。1表示星期一。。。)

// 当月的第一天的星期
    int day = new Date(year, new Date().getMonth(), 1).getDay();

 

 

完整代码地址:https://gitee.com/jltfcloudcn/jump_to/tree/master/%E6%97%A5%E5%8E%86%E7%BB%83%E4%B9%A0

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
HarmonyOS应用开发日历练习.zip 396.7K 88次下载
收藏
回复
举报
回复
    相关推荐