• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3532

entry/06-May-2025-1,5251,391

hvigor/06-May-2025-2323

screenshots/06-May-2025-

.gitignoreD06-May-2025133 1212

Readme.mdD06-May-20253.3 KiB7457

build-profile.json5D06-May-20251.2 KiB5150

hvigorfile.tsD06-May-2025843 225

hvigorwD06-May-20252.1 KiB6228

hvigorw.batD06-May-20252.1 KiB8060

oh-package.json5D06-May-2025834 2624

ohosTest.mdD06-May-2025897 66

Readme.md

1# 2D引擎接口示例
2
3### 介绍
4
5本实例主要测试了当前2D引擎提供的接口功能,主要调用了[@ohos.graphics.drawing](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.graphics.drawing.d.ts)和[@kit.ArkGraphics2D](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkgraphics2d/js-apis-effectKit.md)中的接口,测试了每一个接口的功能。2D引擎渲染的画面会被显示在[Text](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@internal/component/ets/text.d.ts)这一控件中。点击“...展开”会有评论区展开效果,点击“...收起”会展示收起效果。
6
7### 使用说明
8
91. 启动应用,点击“...展开”显示文本展开效果,点击“...收起”显示文本收起效果。
10
11### 效果预览
12
13| 收起效果                         | 展开效果                          |
14|-------------------------------------|------------------------------------------|
15| ![](./screenshots/collapse.png) | ![](./screenshots/expand.png) |
16
17### 工程目录
18
19```
20entry/src/main/
21├── ets
22│   ├── entryability
23│   ├── entrybackupability
24│   └── pages
25│       └── TextCollapseEtsDemo.ets
26└── resources
27    ├── base
28    │   ├── element
29    │   ├── media
30    │   └── profile
31    ├── en_US
32    │   └── element
33    ├── rawfile
34    │   ├── FZBWKSJW.TTF
35    │   └── STXINGKA.ttf
36    └── zh_CN
37        └── element
38```
39
40### 具体实现
41* getFoldIndex主要逻辑(根据给定的试图模型列表来设置文本的样式和内容)
42    * 定义一个文本样式(myTextStyle)和一个段落样式(myParagraphStyle),并加载一个自定义字体;
43    * 创建一个段落构造器(ParagraphGraphBuilder),并根据视图模型列表中的每个元素的类型和内容来添加文本或占位符;
44    * 构建段落,并计算段落的布局,如果段落的行数大于2,会计算出在给定宽度下的折叠点;
45    * 创建一个画布,并将段落绘制到画布上,并返回折叠点的索引和行数;
46* getResultFromNdk主要逻辑(由原始列表originViewModelList转换成折叠列表collapseViewModelList)
47    * getFoldIndex获取折叠索引和行数;
48    * 如果行数小于等于2,不需要处理直接返回;
49    * 如果行数大于2,进行裁剪,裁剪过程会根据折叠索引来决定哪些原始列表数据应该被保留,哪些应该被裁剪;
50    * 裁剪规则:如果原始列表的类型为0,直接将其内容长度累加到当前索引上;如果是1,将索引加1;
51
52### 相关权限
53
54暂无
55
56### 依赖
57
58暂无
59
60### 约束与限制
61
621. 本示例仅支持标准系统上运行,支持设备:RK3568;
632. 本示例仅支持API12版本SDK,SDK版本号:(API Version 12 5.0.0.31),镜像版本号:OpenHarmony 5.0.0.31;
643. 本示例需要使用DevEco Studio NEXT Developer Preview1(Build Version: 4.1.3.500)才可编译运行;
65
66### 下载
67
68```
69git init
70git config core.sparsecheckout true
71echo code/BasicFeature/Graphics/Graphics2d/ExpandText/ > .git/info/sparse-checkout
72git remote add origin https://gitee.com/openharmony/applications_app_samples.git
73git pull origin master
74```