From 423ca1dc002250134bb7d74cc1372faa54842d5b Mon Sep 17 00:00:00 2001 From: HYL123698745 <1252347619@qq.com> Date: Tue, 13 Apr 2021 09:55:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=911.=E4=BF=AE=E6=94=B9readme=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ad6076c..0cc4f2b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # TimetableView_master -**本项目基于开源项目TimetableView 进行openharmony的移植和开发,可以通过项目标签以及github地址( https://github.com/zfman/TimetableView )追踪到原安卓项目版本** +**本项目基于开源项目TimetableView 进行openharmony的移植和开发,可以通过项目标签以及github地址( )追踪到原安卓项目版本** #### 项目介绍 - 项目名称:TimetableView超级课程表 @@ -11,7 +11,7 @@ - 开发版本:sdk5,DevEco Studio2.1 beta3 - 项目作者和维护人:蒋军 - 联系方式:jiangjun073@chinasoftinc.com -- 原项目Doc地址:https://github.com/zfman/TimetableView/wiki/版本说明 +- 原项目Doc地址: #### 支持的功能 - 支持xml设置属性 @@ -32,7 +32,7 @@ #### 安装教程 -1.下载library的har包library.har(位于:)。 +1.下载library的har包library.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“demo->libs”下。 -- Gitee From 9a89be23d3d2ef512c3c32fc6bfc86156630ffe7 Mon Sep 17 00:00:00 2001 From: HYL123698745 <1252347619@qq.com> Date: Tue, 13 Apr 2021 19:13:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=911.=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 0f37d1b..3da8e0d 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,8 @@ ohos { } } + + buildscript { repositories { maven { -- Gitee From f3d7f6f25c25a5284cdfbaa5fb767e1165235058 Mon Sep 17 00:00:00 2001 From: HYL123698745 <1252347619@qq.com> Date: Wed, 14 Apr 2021 10:25:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E3=80=911.=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +-- build.gradle | 2 - entry/src/main/config.json | 5 +- .../ohos/adapter/NonViewAdapter.java | 1 + .../chinasoft/ohos/custom/CustomOperater.java | 5 +- .../com/chinasoft/ohos/dialog/ToastUtil.java | 1 + .../com/chinasoft/ohos/model/MySubject.java | 1 - .../chinasoft/ohos/slice/BaseFuncSlice.java | 4 +- .../chinasoft/ohos/slice/ColorPoolSlice.java | 10 ++-- .../ohos/slice/CustomWidthSlice.java | 8 +-- .../com/chinasoft/ohos/slice/DateSlice.java | 6 +- .../chinasoft/ohos/slice/ElasticSlice.java | 4 +- .../chinasoft/ohos/slice/FlaglayoutSlice.java | 5 +- .../chinasoft/ohos/slice/ItemStyleSlice.java | 7 ++- .../ohos/slice/LocalConfigSlice.java | 6 +- .../chinasoft/ohos/slice/NonViewSlice.java | 47 ++++++++++++--- .../com/chinasoft/ohos/slice/SimpleSlice.java | 8 +-- .../ohos/spinner/MaterialSpinner.java | 5 +- .../spinner/MaterialSpinnerBaseAdapter.java | 4 ++ .../base/layout/ability_color_pool.xml | 3 +- .../base/layout/ability_custom_item_style.xml | 2 +- .../resources/base/layout/ability_date.xml | 3 +- .../base/layout/ability_date_delay.xml | 5 +- .../resources/base/layout/ability_extras.xml | 5 +- .../base/layout/ability_flaglayout.xml | 5 +- .../base/layout/ability_local_config.xml | 5 +- .../resources/base/layout/ability_slide.xml | 5 +- .../resources/base/layout/header_simple.xml | 1 - timetable/build.gradle | 2 +- .../zhuangfei/timetable/TimetableView.java | 18 +++++- .../timetable/listener/ISchedule.java | 32 +++++----- .../timetable/listener/OnDateBuildAapter.java | 15 +++-- .../listener/OnScrollViewBuildAdapter.java | 4 +- .../listener/OnSpaceItemClickAdapter.java | 6 +- .../timetable/model/ScheduleColorPool.java | 6 +- .../timetable/operater/SimpleOperater.java | 7 +-- .../zhuangfei/timetable/utils/AttrUtils.java | 51 +++++++++++++++- .../zhuangfei/timetable/utils/ColorUtils.java | 2 +- .../zhuangfei/timetable/view/PerWeekView.java | 58 +++++++++++-------- 39 files changed, 253 insertions(+), 120 deletions(-) diff --git a/README.md b/README.md index 0cc4f2b..5c57122 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,18 @@ # TimetableView_master -**本项目基于开源项目TimetableView 进行openharmony的移植和开发,可以通过项目标签以及github地址( )追踪到原安卓项目版本** +**本项目基于开源项目TimetableView 进行openharmony的移植和开发,可以通过项目标签以及github地址( https://github.com/zfman/TimetableView )追踪到原安卓项目版本** #### 项目介绍 - 项目名称:TimetableView超级课程表 - 所属系列:openharmony的第三方组件适配移植 -- 功能:是一款开源的、完善、高效的openharmony课程表控件。 +- 功能:是一款开源的、完善、高效的openharmony课程表控件 - 项目移植状态:主功能完成 - 调用差异:无 - 开发版本:sdk5,DevEco Studio2.1 beta3 - 项目作者和维护人:蒋军 - 联系方式:jiangjun073@chinasoftinc.com -- 原项目Doc地址: +- 原项目Doc地址:https://github.com/zfman/TimetableView/wiki/版本说明 +- 基线版本:TimetableView组件Release版本号 v2.0.7-beta #### 支持的功能 - 支持xml设置属性 @@ -32,7 +33,7 @@ #### 安装教程 -1.下载library的har包library.har(位于:)。 +1.下载library的har包library.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“demo->libs”下。 diff --git a/build.gradle b/build.gradle index 3da8e0d..0f37d1b 100644 --- a/build.gradle +++ b/build.gradle @@ -8,8 +8,6 @@ ohos { } } - - buildscript { repositories { maven { diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 07e89d0..bdf1a20 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -7,7 +7,7 @@ "name": "1.0" }, "apiVersion": { - "compatible": 4, + "compatible": 5, "target": 5, "releaseType": "Beta1" } @@ -17,7 +17,8 @@ "package": "com.chinasoft.ohos", "name": ".MyApplication", "deviceType": [ - "phone" + "phone", + "tv" ], "reqPermissions": [ { diff --git a/entry/src/main/java/com/chinasoft/ohos/adapter/NonViewAdapter.java b/entry/src/main/java/com/chinasoft/ohos/adapter/NonViewAdapter.java index 08cc986..57e902b 100644 --- a/entry/src/main/java/com/chinasoft/ohos/adapter/NonViewAdapter.java +++ b/entry/src/main/java/com/chinasoft/ohos/adapter/NonViewAdapter.java @@ -28,6 +28,7 @@ import java.util.List; /** * Created by Liu ZhuangFei on 2018/6/18. BaseAdapter + * */ public class NonViewAdapter extends BaseItemProvider { diff --git a/entry/src/main/java/com/chinasoft/ohos/custom/CustomOperater.java b/entry/src/main/java/com/chinasoft/ohos/custom/CustomOperater.java index df276ab..369a622 100644 --- a/entry/src/main/java/com/chinasoft/ohos/custom/CustomOperater.java +++ b/entry/src/main/java/com/chinasoft/ohos/custom/CustomOperater.java @@ -10,7 +10,8 @@ import ohos.agp.components.DirectionalLayout; * @version 2.0.6 * Created by Liu ZhuangFei on 2018/9/1. */ -public class CustomOperater extends SimpleOperater{ +public class CustomOperater extends SimpleOperater +{ /** * 宽度权重 */ @@ -40,7 +41,7 @@ public class CustomOperater extends SimpleOperater{ if (weight == null || weight.length < 7) { return; } - this.weights = weights; + this.weights = weight; } public float[] getWeights() { diff --git a/entry/src/main/java/com/chinasoft/ohos/dialog/ToastUtil.java b/entry/src/main/java/com/chinasoft/ohos/dialog/ToastUtil.java index 64e50d5..68c0868 100644 --- a/entry/src/main/java/com/chinasoft/ohos/dialog/ToastUtil.java +++ b/entry/src/main/java/com/chinasoft/ohos/dialog/ToastUtil.java @@ -86,4 +86,5 @@ public class ToastUtil { toastDialog.setAlignment(LayoutAlignment.BOTTOM); toastDialog.show(); } + } diff --git a/entry/src/main/java/com/chinasoft/ohos/model/MySubject.java b/entry/src/main/java/com/chinasoft/ohos/model/MySubject.java index 5cf47a5..1c872d5 100644 --- a/entry/src/main/java/com/chinasoft/ohos/model/MySubject.java +++ b/entry/src/main/java/com/chinasoft/ohos/model/MySubject.java @@ -22,7 +22,6 @@ public class MySubject implements ScheduleEnable { private String name; private String time; - /** * 教室 */ diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/BaseFuncSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/BaseFuncSlice.java index 206054f..ed38531 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/BaseFuncSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/BaseFuncSlice.java @@ -147,7 +147,7 @@ public class BaseFuncSlice extends AbilitySlice implements Component.ClickedList .curWeek(1) .curTerm("大三下学期") .maxSlideItem(10) - .monthWidthDp(50) + .monthWidthDp(80) .callback(new ISchedule.OnItemClickListener() { @Override public void onItemClick(Component v, List scheduleList) { @@ -387,7 +387,7 @@ public class BaseFuncSlice extends AbilitySlice implements Component.ClickedList } /** - * 设置月份宽度,默认40dp + * 设置月份宽度,默认80vp */ private void resetMonthWidth() { mTimetableView.monthWidthDp(80).updateView(); diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/ColorPoolSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/ColorPoolSlice.java index 4c51f0d..072964c 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/ColorPoolSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/ColorPoolSlice.java @@ -119,13 +119,13 @@ public class ColorPoolSlice extends AbilitySlice { private void selectLayout(int position) { switch (position) { case 0: - setColor(new RgbColor(134, 172, 233), new RgbColor(241, 198, 114), new RgbColor(0, 255, 255)); + setColor(new RgbColor(0, 0, 255), new RgbColor(255, 255, 0), new RgbColor(0, 255, 255)); break; case 1: resetColor(); break; case 2: - addColor(new RgbColor(134, 172, 233), new RgbColor(241, 198, 114), new RgbColor(0, 255, 255)); + addColor(new RgbColor(0, 0, 255), new RgbColor(255, 255, 0), new RgbColor(0, 255, 255)); break; case 3: forColor(); @@ -168,9 +168,9 @@ public class ColorPoolSlice extends AbilitySlice { * 指定课程的颜色,未指定的课程自动分配 */ public void forColor() { - Map colorMap = new HashMap<>(); - colorMap.put("数字图像处理", Color.RED.getValue()); - colorMap.put("算法分析与设计", Color.BLUE.getValue()); + Map colorMap = new HashMap<>(); + colorMap.put("数字图像处理", new RgbColor(255,0,0)); + colorMap.put("算法分析与设计", new RgbColor(0, 0, 255)); mTimetableView.colorPool().setIgnoreUserlessColor(false).setColorMap(colorMap); mTimetableView.updateView(); } diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/CustomWidthSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/CustomWidthSlice.java index fd1071b..08b124d 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/CustomWidthSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/CustomWidthSlice.java @@ -68,16 +68,14 @@ public class CustomWidthSlice extends AbilitySlice { @Override public void onFlaglayoutClick(int day, int start) { mTimetableView.hideFlaglayout(); - ToastViewDialog.toast(CustomWidthSlice.this, "点击了旗标:周" + (day + 1) + ",第" + start + "节"); - } }) .callback(new OnDateBuildAapter() { @Override - public Component[] getDateViews(LayoutScatter mInflate, float monthWidth, float perWidth, int height) { + public Component[] getDateViews(LayoutScatter scatter, float monthWidth, float perWidth, int height) { Component[] views = new Component[8]; - views[0] = onBuildMonthLayout(mInflate, (int) monthWidth, height); + views[0] = onBuildMonthLayout(scatter, (int) monthWidth, height); float[] weights = operater.getWeights(); float sum = 0; for (int i = 0; i < weights.length; i++) { @@ -85,7 +83,7 @@ public class CustomWidthSlice extends AbilitySlice { } for (int i = 1; i < 8; i++) { float rato = weights[i - 1] / sum; - views[i] = onBuildDayLayout(mInflate, i, (int) (7 * perWidth * rato), height); + views[i] = onBuildDayLayout(scatter, i, (int) (7 * perWidth * rato), height); } return views; } diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/DateSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/DateSlice.java index bcbce3e..661c51e 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/DateSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/DateSlice.java @@ -120,7 +120,7 @@ public class DateSlice extends AbilitySlice { new OnDateBuildAapter() { @Override public Component onBuildDayLayout(LayoutScatter mInflate, int pos, int width, int height) { - int newHeight = 50; + int newHeight = 70; Component view = mInflate.parse(ResourceTable.Layout_item_custom_dateview, null, true); Text dayTextView = (Text) view.findComponentById(ResourceTable.Id_id_week_day); dayTextView.setText(dateArray[pos]); @@ -132,9 +132,9 @@ public class DateSlice extends AbilitySlice { } @Override - public Component onBuildMonthLayout(LayoutScatter mInflate, int width, int height) { + public Component onBuildMonthLayout(LayoutScatter scatter, int width, int height) { int newHeight = 30; - Component first = mInflate.parse(ResourceTable.Layout_item_custom_dateview_first, null, true); + Component first = scatter.parse(ResourceTable.Layout_item_custom_dateview_first, null, true); /** * 月份设置 */ diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/ElasticSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/ElasticSlice.java index 0683b4a..23d5fc3 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/ElasticSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/ElasticSlice.java @@ -57,9 +57,9 @@ public class ElasticSlice extends AbilitySlice { mTimetableView.source(mySubjects) .callback(new ISchedule.OnScrollViewBuildListener() { @Override - public Component getScrollView(LayoutScatter mInflate) { + public Component getScrollView(LayoutScatter scatter) { - return mInflate.parse(ResourceTable.Layout_custom_myscrollview, null, true); + return scatter.parse(ResourceTable.Layout_custom_myscrollview, null, true); } }) .showView(); diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/FlaglayoutSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/FlaglayoutSlice.java index 71c3281..6100789 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/FlaglayoutSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/FlaglayoutSlice.java @@ -94,15 +94,16 @@ public class FlaglayoutSlice extends AbilitySlice { @Override public void onLongClick(Component v, int day, int start) { ToastViewDialog.toast(FlaglayoutSlice.this, "长按:周" + day + ",第" + start + "节"); - } }) .callback(new ISchedule.OnFlaglayoutClickListener() { @Override public void onFlaglayoutClick(int day, int start) { + FlaglayoutSlice.this.getUITaskDispatcher().asyncDispatch(() -> { + mTimetableView.hideFlaglayout(); + }); mTimetableView.hideFlaglayout(); ToastViewDialog.toast(FlaglayoutSlice.this, "点击了旗标:周" + (day + 1) + ",第" + start + "节"); - } }) .showView(); diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/ItemStyleSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/ItemStyleSlice.java index 5039e05..b424867 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/ItemStyleSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/ItemStyleSlice.java @@ -38,6 +38,7 @@ import java.util.List; /** * ItemStyleSlice * + * @noinspection checkstyle:LineLength * @since 2021-03-29 */ public class ItemStyleSlice extends AbilitySlice { @@ -96,7 +97,8 @@ public class ItemStyleSlice extends AbilitySlice { .showView(); } - private static final String[] SPIN_MUNE = {"切换英文","切换中文","隐藏非本周课程","显示非本周课程","边距与弧度设置","课程项文本","单个角弧度设置","非本周背景设置","修改课程重叠的样式"}; + + private static final String[] SPIN_MUNE = {"切换英文", "切换中文", "隐藏非本周课程", "显示非本周课程", "边距与弧度设置", "课程项文本", "单个角弧度设置", "非本周背景设置", "修改课程重叠的样式"}; /** * 显示弹出菜单 @@ -149,7 +151,8 @@ public class ItemStyleSlice extends AbilitySlice { case 8: modifyOverlayStyle(); break; - default:break; + default: + break; } } diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/LocalConfigSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/LocalConfigSlice.java index c95697a..2558b1e 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/LocalConfigSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/LocalConfigSlice.java @@ -17,6 +17,7 @@ package com.chinasoft.ohos.slice; import com.chinasoft.ohos.ResourceTable; import com.chinasoft.ohos.config.OnMyConfigHandleAdapter; +import com.chinasoft.ohos.dialog.DialogUtil; import com.chinasoft.ohos.dialog.ToastViewDialog; import com.chinasoft.ohos.model.MySubject; import com.chinasoft.ohos.model.SubjectRepertory; @@ -26,6 +27,7 @@ import com.zhuangfei.timetable.model.ScheduleConfig; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Text; +import ohos.agp.window.dialog.CommonDialog; import java.util.List; import java.util.Set; @@ -156,10 +158,10 @@ public class LocalConfigSlice extends AbilitySlice { Set set = mScheduleConfig.export(); configSet = set; String content = ""; - for (String s : set) { + for (String s : set){ content += s + "\n"; } - ToastViewDialog.toast(this, content); + DialogUtil.show(this, "配置导出", content); } /** diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/NonViewSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/NonViewSlice.java index 16cf8c6..c228581 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/NonViewSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/NonViewSlice.java @@ -17,6 +17,7 @@ package com.chinasoft.ohos.slice; import com.chinasoft.ohos.ResourceTable; import com.chinasoft.ohos.adapter.NonViewAdapter; +import com.chinasoft.ohos.model.MySubject; import com.chinasoft.ohos.model.SubjectRepertory; import com.chinasoft.ohos.spinner.MaterialSpinner; import com.zhuangfei.timetable.model.Schedule; @@ -24,6 +25,9 @@ import com.zhuangfei.timetable.model.ScheduleSupport; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.ListContainer; +import ohos.eventhandler.EventHandler; +import ohos.eventhandler.EventRunner; +import ohos.eventhandler.InnerEvent; import java.util.ArrayList; import java.util.List; @@ -54,7 +58,7 @@ public class NonViewSlice extends AbilitySlice { listView = (ListContainer) findComponentById(ResourceTable.Id_id_listview); adapter = new NonViewAdapter(this, schedules); listView.setItemProvider(adapter); - all(); + requestData(); } public void showPopmenu() { @@ -92,12 +96,6 @@ public class NonViewSlice extends AbilitySlice { super.onForeground(intent); } - public List getData() { - List list = ScheduleSupport.transform(SubjectRepertory.loadDefaultSubjects()); - list = ScheduleSupport.getColorReflect(list); - return list; - } - /** * 获取所有课程 */ @@ -136,4 +134,39 @@ public class NonViewSlice extends AbilitySlice { schedules.addAll(tmpList); adapter.notifyDataChanged(); } + + public List getData() { + List list = ScheduleSupport.transform(SubjectRepertory.loadDefaultSubjects()); + list = ScheduleSupport.getColorReflect(list); + return list; + } + + EventHandler runner = new EventHandler(EventRunner.create()) { + @Override + protected void processEvent(InnerEvent event) { + super.processEvent(event); + NonViewSlice.this.getUITaskDispatcher().asyncDispatch(() -> { + all(); + }); + + } + }; + + /** + * 2秒后刷新界面,模拟网络请求 + */ + private void requestData() { + new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(2000); + + } catch (InterruptedException e) { + String errorString = e.toString(); + } + runner.sendEvent(InnerEvent.get()); + } + }).start(); + } } diff --git a/entry/src/main/java/com/chinasoft/ohos/slice/SimpleSlice.java b/entry/src/main/java/com/chinasoft/ohos/slice/SimpleSlice.java index 3c8ecf9..5485cf1 100644 --- a/entry/src/main/java/com/chinasoft/ohos/slice/SimpleSlice.java +++ b/entry/src/main/java/com/chinasoft/ohos/slice/SimpleSlice.java @@ -212,14 +212,14 @@ public class SimpleSlice extends AbilitySlice implements Component.ClickedListen }) .callback(new OnItemBuildAdapter() { @Override - public void onItemUpdate(StackLayout layout, Text textView, Text countTextView, Schedule schedule, ShapeElement gd) { - super.onItemUpdate(layout, textView, countTextView, schedule, gd); + public void onItemUpdate(StackLayout stackLayout, Text textView, Text countTextView, Schedule schedule, ShapeElement gd) { + super.onItemUpdate(stackLayout, textView, countTextView, schedule, gd); if (schedule.getName().equals("【广告】")) { - layout.removeAllComponents(); + stackLayout.removeAllComponents(); Image imageView = new Image(SimpleSlice.this); imageView.setHeight(DependentLayout.LayoutConfig.MATCH_PARENT); imageView.setWidth(DependentLayout.LayoutConfig.MATCH_PARENT); - layout.addComponent(imageView); + stackLayout.addComponent(imageView); String url = (String) schedule.getExtras().get(MySubject.EXTRAS_AD_URL); new Thread(new Runnable() { diff --git a/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinner.java b/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinner.java index 8d47542..8a6d7e2 100644 --- a/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinner.java +++ b/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinner.java @@ -224,9 +224,10 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene listView = new ListContainer(context); ComponentContainer.LayoutConfig layoutConfig = - new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_CONTENT); + new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT); listView.setLayoutConfig(layoutConfig); listView.setId(getId()); + listView.setLayoutManager(new DirectionalLayoutManager()); listView.setScrollbarColor(Color.DKGRAY); listView.setScrollbarThickness(20); listView.setScrollbarFadingEnabled(true); @@ -484,7 +485,7 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene popupWindow.setSize(ScreenUtils.getDisplayWidth(mContext) / 5 * 2, calculatePopupWindowHeight()); int[] locationOnScreen = this.getLocationOnScreen(); HiLog.info(LABEL, "locationOnScreen[1] = " + locationOnScreen[1] + ", " + spinnerWidth + ",locationOnScreen[1]" + locationOnScreen[1]); - popupWindow.showOnCertainPosition(LayoutAlignment.LEFT | LayoutAlignment.TOP, locationOnScreen[0] + 60, locationOnScreen[1]); + popupWindow.showOnCertainPosition(LayoutAlignment.LEFT | LayoutAlignment.TOP, locationOnScreen[0] + 60, locationOnScreen[1] + this.getComponentSize().getSizeYToInt()); isShow = true; } } diff --git a/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinnerBaseAdapter.java b/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinnerBaseAdapter.java index 074ca27..837c8d5 100644 --- a/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinnerBaseAdapter.java +++ b/entry/src/main/java/com/chinasoft/ohos/spinner/MaterialSpinnerBaseAdapter.java @@ -106,6 +106,10 @@ public abstract class MaterialSpinnerBaseAdapter extends RecycleItemProvider return selectedIndex; } + /** + * @javadoc notifyItemSelected + * @param index + */ public void notifyItemSelected(int index) { selectedIndex = index; } diff --git a/entry/src/main/resources/base/layout/ability_color_pool.xml b/entry/src/main/resources/base/layout/ability_color_pool.xml index ba26126..94ecc15 100644 --- a/entry/src/main/resources/base/layout/ability_color_pool.xml +++ b/entry/src/main/resources/base/layout/ability_color_pool.xml @@ -7,7 +7,8 @@ + ohos:width="match_parent" + ohos:right_margin="10vp"/> + ohos:right_margin="10vp"/> + ohos:layout="$layout:header_simple" + ohos:right_margin="10vp"/> - + - + + ohos:layout="$layout:header_simple" + ohos:right_margin="10vp" + /> - + - + weekDates; protected DirectionalLayout layout; + /** + * @javadoc + * @param background + * @return + */ public OnDateBuildAapter setBackground(int background) { this.background = background; return this; } @Override - public void onInit(DirectionalLayout layout, float alpha) { + public void onInit(DirectionalLayout directionalLayout, float alpha) { this.alpha = alpha; - this.layout = layout; + this.layout = directionalLayout; /** * 星期设置 */ @@ -57,11 +62,11 @@ public class OnDateBuildAapter implements ISchedule.OnDateBuildListener { } @Override - public Component[] getDateViews(LayoutScatter mInflate, float monthWidth, float perWidth, int height) { + public Component[] getDateViews(LayoutScatter scatter, float monthWidth, float perWidth, int height) { Component[] views = new Component[8]; - views[0] = onBuildMonthLayout(mInflate, (int) monthWidth, height); + views[0] = onBuildMonthLayout(scatter, (int) monthWidth, height); for (int i = 1; i < 8; i++) { - views[i] = onBuildDayLayout(mInflate, i, (int) perWidth, height); + views[i] = onBuildDayLayout(scatter, i, (int) perWidth, height); } return views; } diff --git a/timetable/src/main/java/com/zhuangfei/timetable/listener/OnScrollViewBuildAdapter.java b/timetable/src/main/java/com/zhuangfei/timetable/listener/OnScrollViewBuildAdapter.java index 96ceee3..e0e5b4a 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/listener/OnScrollViewBuildAdapter.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/listener/OnScrollViewBuildAdapter.java @@ -11,7 +11,7 @@ import ohos.agp.components.LayoutScatter; public class OnScrollViewBuildAdapter implements ISchedule.OnScrollViewBuildListener { @Override - public Component getScrollView(LayoutScatter mInflate) { - return mInflate.parse(ResourceTable.Layout_view_simplescrollview, null, true); + public Component getScrollView(LayoutScatter scatter) { + return scatter.parse(ResourceTable.Layout_view_simplescrollview, null, true); } } diff --git a/timetable/src/main/java/com/zhuangfei/timetable/listener/OnSpaceItemClickAdapter.java b/timetable/src/main/java/com/zhuangfei/timetable/listener/OnSpaceItemClickAdapter.java index 69c60a1..4cd631f 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/listener/OnSpaceItemClickAdapter.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/listener/OnSpaceItemClickAdapter.java @@ -34,11 +34,11 @@ public class OnSpaceItemClickAdapter implements ISchedule.OnSpaceItemClickListen } @Override - public void onInit(DirectionalLayout flagLayout, int monthWidth, int itemWidth, int itemHeight, int marTop, int marLeft) { - this.flagLayout = flagLayout; + public void onInit(DirectionalLayout directionalLayout, int MonthWidth, int itemWidth, int itemHeight, int marTop, int marLeft) { + this.flagLayout = directionalLayout; this.itemHeight = itemHeight; this.itemWidth = itemWidth; - this.monthWidth = monthWidth; + this.monthWidth = MonthWidth; this.marTop = marTop; this.marLeft = marLeft; } diff --git a/timetable/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java b/timetable/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java index 442019c..c60ac7c 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java @@ -19,7 +19,7 @@ public class ScheduleColorPool { */ private RgbColor uselessColor; - private Map colorMap; + private Map colorMap; /** * true:非本周课程使用colorMap渲染 @@ -39,7 +39,7 @@ public class ScheduleColorPool { * * @return colorMap */ - public Map getColorMap() { + public Map getColorMap() { if (colorMap == null) { return new HashMap<>(); } else { @@ -53,7 +53,7 @@ public class ScheduleColorPool { * @param colorMap * @return ScheduleColorPool */ - public ScheduleColorPool setColorMap(Map colorMap) { + public ScheduleColorPool setColorMap(Map colorMap) { this.colorMap = colorMap; return this; } diff --git a/timetable/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java b/timetable/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java index 5b15ce6..b0d94cf 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java @@ -246,7 +246,7 @@ public class SimpleOperater extends AbsOperater { ShapeElement gd = new ShapeElement(); if (isThisWeek) { textView.setTextColor(new Color(mView.itemTextColorWithThisWeek())); - Map colorMap = mView.colorPool().getColorMap(); + Map colorMap = mView.colorPool().getColorMap(); if ((!colorMap.isEmpty()) && colorMap.containsKey(subject.getName())) { gd.setRgbColor(new RgbColor(colorMap.get(subject.getName()))); } else { @@ -271,7 +271,7 @@ public class SimpleOperater extends AbsOperater { } } else { textView.setTextColor(new Color(mView.itemTextColorWithNotThis())); - Map colorMap = mView.colorPool().getColorMap(); + Map colorMap = mView.colorPool().getColorMap(); if ((!colorMap.isEmpty()) && mView.colorPool().isIgnoreUserlessColor() && colorMap.containsKey(subject.getName())) { gd.setRgbColor(new RgbColor(colorMap.get(subject.getName()))); @@ -373,8 +373,7 @@ public class SimpleOperater extends AbsOperater { /** * 判断点击的是第几节课,1:第1节 */ - final int start = (int) Math.ceil((y - mView.itemHeight() - ScreenUtils.fpToPx( - context, 50)) / (mView.itemHeight() + mView.marTop())); + final int start = (int) Math.ceil(y / (mView.itemHeight() + mView.marTop())); if (!checkPosition(day, start)) { mView.onSpaceItemClickListener().onSpaceItemClick(day, start); } diff --git a/timetable/src/main/java/com/zhuangfei/timetable/utils/AttrUtils.java b/timetable/src/main/java/com/zhuangfei/timetable/utils/AttrUtils.java index 43d92c8..a7b5dce 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/utils/AttrUtils.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/utils/AttrUtils.java @@ -34,7 +34,14 @@ import java.util.NoSuchElementException; public class AttrUtils { static final HiLogLabel LOG_LABEL = new HiLogLabel(HiLog.LOG_APP, 0x12345, "AttrUtils"); - + /** + * 根据 AttrSet 获取 boolean + * + * @param attrs + * @param attrName + * @param defValue + * @return boolean + */ public static boolean getBoolean(AttrSet attrs, String attrName, boolean defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { @@ -44,6 +51,14 @@ public class AttrUtils { } } + /** + * 根据AttrSet 获取 String + * + * @param attrs + * @param attrName + * @param defValue + * @return String + */ public static String getString(AttrSet attrs, String attrName, String defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { @@ -53,6 +68,14 @@ public class AttrUtils { } } + /** + * 根据 AttrSet 返回 int 值 + * + * @param attrs + * @param attrName + * @param defValue + * @return int + */ public static int getInt(AttrSet attrs, String attrName, int defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { @@ -62,6 +85,14 @@ public class AttrUtils { } } + /** + * 根据AttrSet 获取 float + * + * @param attrs + * @param attrName + * @param defValue + * @return float + */ public static float getFloat(AttrSet attrs, String attrName, float defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { @@ -71,6 +102,14 @@ public class AttrUtils { } } + /** + * 获取 Element + * + * @param attrs + * @param attrName + * @param defValue + * @return Element + */ public static Element getElement(AttrSet attrs, String attrName, Element defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { @@ -108,6 +147,16 @@ public class AttrUtils { } } + + /** + * Color 获取颜色 + * + * @param attrs + * @param attrName + * @param defValue + * @return Color + */ + public static Color getColor(AttrSet attrs, String attrName, Color defValue) { Attr attr = attrNoSuchElement(attrs, attrName); if (attr == null) { diff --git a/timetable/src/main/java/com/zhuangfei/timetable/utils/ColorUtils.java b/timetable/src/main/java/com/zhuangfei/timetable/utils/ColorUtils.java index 5742d11..615d255 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/utils/ColorUtils.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/utils/ColorUtils.java @@ -12,7 +12,7 @@ public class ColorUtils { * * @param color * @param alpha 0:完全透明,1:不透明 - * @return + * @return int */ public static int alphaColor(int color, float alpha) { int a = Math.min(255, Math.max(0, (int) (alpha * 255))) << 24; diff --git a/timetable/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java b/timetable/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java index 15c485e..015b986 100644 --- a/timetable/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java +++ b/timetable/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java @@ -187,10 +187,21 @@ public class PerWeekView extends Component { return this; } + /** + * 构造 + * * + * @param context + */ public PerWeekView(Context context) { this(context, null); } + /** + * 构造函数 + * * + * @param context + * @param attrs + */ public PerWeekView(Context context, AttrSet attrs) { super(context, attrs); this.context = context; @@ -216,29 +227,26 @@ public class PerWeekView extends Component { radius = AttrUtils.getInt(attrs, "radius", defRadius); - addDrawTask(new DrawTask() { - @Override - public void onDraw(Component component, Canvas canvas) { - int mar = (width - 10 * radius) / 6; - lightPaint.setColor(lightColors); - grayPaint.setColor(grayColors); - debug("" + mar); - int[][] tmp = getArray(); - - /** - * 绘制点 - */ - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - if (tmp[i][j] == 0) { - drawPoint(canvas, mar + radius + (mar + 2 * radius) * j, mar + radius + (mar + 2 * radius) * i, radius, grayPaint); - } else { - drawPoint(canvas, mar + radius + (mar + 2 * radius) * j, mar + radius + (mar + 2 * radius) * i, radius, lightPaint); - } + addDrawTask((component, canvas) -> { + int mar = (width - 10 * radius) / 6; + lightPaint.setColor(lightColors); + grayPaint.setColor(grayColors); + debug("" + mar); + int[][] tmp = getArray(); + + /** + * 绘制点 + */ + for (int i = 0; i < 5; i++) { + for (int j = 0; j < 5; j++) { + if (tmp[i][j] == 0) { + drawPoint(canvas, mar + radius + (mar + 2 * radius) * j, mar + radius + (mar + 2 * radius) * i, radius, grayPaint); + } else { + drawPoint(canvas, mar + radius + (mar + 2 * radius) * j, mar + radius + (mar + 2 * radius) * i, radius, lightPaint); } } - invalidate(); } + invalidate(); }); setLayoutRefreshedListener(new LayoutRefreshedListener() { @@ -309,13 +317,13 @@ public class PerWeekView extends Component { * 画点 * * @param canvas - * @param x 圆心x - * @param y 圆心y + * @param centerX 圆心x + * @param centerY 圆心y * @param radius 半径 - * @param p 画笔 + * @param paint 画笔 */ - public void drawPoint(Canvas canvas, int x, int y, int radius, Paint p) { - canvas.drawCircle(x, y, radius, p); + public void drawPoint(Canvas canvas, int centerX, int centerY, int radius, Paint paint) { + canvas.drawCircle(centerX, centerY, radius, paint); } private void debug(String errorMsg) { -- Gitee