鸿蒙ArkUI【开发移植Carbon】

项目介绍

本项目是基于开源项目[Carbon] 进行harmonyos化的移植和开发的。

移植版本:Branches/master

这不是单纯只是API和基本功能展示demo,它是最有用的自定义控件的实现,如设计规范中所示。
Carbon试图:

  • 让事情变得更简单(指定cornerRadius=‘dp’ 而不是创建一个xml 和/或一个ViewOutlineProvider)
  • 使其全部工作并在所有 API 上看起来都相同(例如 CheckBox 的左填充)
  • 真正向后移植功能(不要对阴影使用渐变!)
项目名称:Carbon
所属系列:harmonyos的第三方组件适配移植
功能:一个适用于鸿蒙的自定义组件框架,帮助快速实现各种需要的效果
项目移植状态:大部分移植
调用差异:基本没有使用差异,可以参照单元测试或原项目api进行使用

支持功能

  • 支持自定义progressBar功能
  • 支持自定义RoundProgressBar功能
  • 支持Button不同点击效果功能
  • 支持自定义SeekBar滑动功能
  • 支持各种动画效果展示
  • 支持添加收藏组件,快速查找
  • 支持各种列表展示(包含头像,文字等)功能
  • 支持展示控件代码功能
  • 支持不同Dialog效果展示
  • 以及其它自定义效果/控件

安装教程

方案一

可以先下载项目,将项目中的carbon库提取出来放在所需项目中通过build配置

dependencies {
     implementation project(":carbon")
}
方案二
  • 1.项目根目录的build.gradle中的repositories添加:
    buildscript {
       repositories {
           ...
           mavenCentral()
       }
       ...
   }
   
   allprojects {
       repositories {
           ...
           mavenCentral()
       }
   }
  • 2.开发者在自己的项目中添加依赖
dependencies {
    implementation 'com.gitee.ts_ohos:carbon:1.0.0'
}

使用说明

1.权限

需要网络权限:
“name”: “ohos.permission.INTERNET”

2.代码使用
            打开不同的设置页面:  
            often_text.setClickedListener(component -> {
                Intent intent = new Intent();
                if (often_text.getText().equals("Widget animations")) {
                    present(new WidgetAnimationsSlice(), intent);
                } else if (often_text.getText().equals("Image fade")) {
                    present(new ImageFadeSlice(), intent);
                } else if (often_text.getText().equals("Touch ripple")) {
                    present(new TouchRippleSlice(), intent);
                } else if (often_text.getText().equals("Path animation")) {
                    present(new PathAnimationSlice(), intent);
                }
...

        // BORDERLESS 触摸事件监听器(按下/抬起)(three)
        btnBorderless.setTouchEventListener(new Component.TouchEventListener() {
            @Override
            public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
                int action = touchEvent.getAction();
                switch (action) {
                    case TouchEvent.PRIMARY_POINT_DOWN:
                        imageView.setVisibility(Component.VISIBLE);
                        break;
                    case TouchEvent.CANCEL:
                    case TouchEvent.PRIMARY_POINT_UP:
                        imageView.setVisibility(Component.HIDE);
                        break;
                }
                return true;
            }
        });

        //对每个条目判断是否收藏:
        mList.add(new DataBean(null, "The most popular problem solutions and other fun ideas implemented with Carbon's widgets and features", null, null));
        mList.add(new DataBean(power, "Power Menu", null, preferences.getBoolean("Power Menu", false) ? starFavour : favour));
        mList.add(new DataBean(null, "Auto Complete", element, preferences.getBoolean("Auto Complete", false) ? starFavour : favour));
        mList.add(new DataBean(null, "Quick Return", null, preferences.getBoolean("Quick Return", false) ? starFavour : favour));
        mList.add(new DataBean(search, "Search Toolbar", null, preferences.getBoolean("Search Toolbar", false) ? starFavour : favour));
        mList.add(new DataBean(parse1, "Share toolbar", element, preferences.getBoolean("Share toolbar", false) ? starFavour : favour));
        mList.add(new DataBean(person, "Profile", null, preferences.getBoolean("Profile", false) ? starFavour : favour));
        mList.add(new DataBean(player, "Music player", element, preferences.getBoolean("Music player", false) ? starFavour : favour));
        mList.add(new DataBean(null, "Collapsing toolbar", null, preferences.getBoolean("Collapsing toolbar", false) ? starFavour : favour));

更多鸿蒙开发学习内容gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md前往参考学习。

鸿蒙系统移植和裁剪定制.png

效果演示

demo部分组件运行效果如下:

  • 主页展示效果
  • What’s new界面展示效果
  • 收藏页面展示
  • Line chart页面运行效果
  • Theme页面运行效果
  • Backdrop及展开页面运行效果
  • Profiles页面运行效果
  • Circular_progress页面运行效果
  • Meuns页面运行效果
  • Music_player页面运行效果
  • Settings页面运行效果

主页运行效果what_new展开页面运行效果

favourties展开页面运行效果

line chart页面运行效果theme运行效果

backdrop运行效果backdrop展开页面运行效果

profiles运行效果

circular_progress运行效果meuns运行效果

music_player展开页面运行效果

settings展开页面运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/483336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你如何下载学浪上已购买的视频课程

全程干货,教大家如何下载学浪上已购买的视频课程 这个软件已经集成了学浪下载课程的功能 使用也特别简单 链接:https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码:kqvj --来自百度网盘超级会员V10的分享 详细操作按照图片流程 一、…

DP:路径规划模型

创作不易,感谢三连支持! 路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。大多需要用二维dp数组去实现 一、不同路径 . - 力扣(LeetCode)不同路径 class Solution { public:int uniquePath…

10一维数组

一维数组是什么? // 相同的数据类型的元素组成的有序集合 // 创建一个一维数组 // 例如: int a[5]{1,2,3,4,5}; //说明: // int:表示数据类型 // a:表示数组名 // [5]:数组的长度 // {1,2,3,4,5} :数组的元素 // 一…

Photoshop 工具使用详解(全集 · 2024版)

全面介绍 Photoshop 工具箱里的工具,点击下列表格中工具名称或图示,即可查阅工具的使用详解。 移动工具Move Tool移动选区、图层和参考线。画板工具Artboard Tool创建、移动多个画布或调整其大小。moVe快捷键:V 矩形选框工具 Rectangular Mar…

视频素材库有哪些网站?6大高质量素材网告诉您

真正的创作始于灵感的火花,而优秀的素材则是让这火花燎原的燃料。在视频创作的广阔天地里,每一帧画面、每一个音符、每一段动画都承载着讲述故事的力量。以下精选的素材网站,无论是为了增添你视频的视觉震撼力,还是为了丰富故事的…

sql注入五-WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

演示案例: 数据猜解-库表列数据&字典权限操作-文件&命令&交互式提交方法-POST&HEAD&JSON绕过模块-Tamper脚本-使用&开发分析拓展-代理&调试&指纹&风险&等级 #参考: https://www.cnblogs.com/bmjoker/p/9326258.…

状态机高阶讲解-10

1896 01:19:16,700 --> 01:19:19,550 那接下来我们就开始来建模了 1897 01:19:20,690 --> 01:19:22,163 那建模的开始呢 1898 01:19:22,163 --> 01:19:24,900 我们就首先要添加一个类了 1899 01:19:26,330 --> 01:19:27,868 那我们这个很简单 1900 01:19:27,86…

主干网络篇 | YOLOv8更换主干网络之GhostNet

前言:Hello大家好,我是小哥谈。GhostNet是2019年由华为诺亚方舟实验室发布的轻量级网络,速度和MobileNetV3相似,但是识别的准确率比MobileNetV3高,在ImageNet ILSVRC2012分类数据集的达到了75.7%的top-1精度。该论文提除了Ghost模块,通过廉价操作生成更多的特征图。基于一…

【go从入门到精通】for循环控制

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…

结构体与共用体

1概述 迄今为止,已介绍了基本类型(或称简单类型)的变量(如整型、实型、字符型变量等)。也介绍了一种构造类型数据一-数组,数组中的各元素是属于同一个类型的。 但是只有这些数据类型是不够的。有时需要将不同类型的数据组合成一个有机的整体,以便于引用…

20231911 2022-2023-2 《网络攻防实践》实验三

1.实验内容 1、实践tcpdump 使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么? 2、实践Wireshark 使…

使用Intellij idea编写Spark应用程序(Scala+SBT)

使用Intellij idea编写Spark应用程序(ScalaSBT) 对Scala代码进行打包编译时,可以采用Maven,也可以采用SBT,相对而言,业界更多使用SBT。 运行环境 Ubuntu 16.04 Spark 2.1.0 Intellij Idea (Version 2017.1) 安装Scala插件 安…

代码随想录训练营第54天 | LeetCode 392.判断子序列、​​​​​​LeetCode 115.不同的子序列

目录 LeetCode 392.判断子序列 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划,用相似思路解决复杂问题 | LeetCode:392.判断子序列_哔哩哔哩_bilibili 思路 ​​​​​​LeetCode 115.不同的子序列 文章讲解&…

MySQL 中 聚集索引、非聚集索引、覆盖索引、索引下推 到底是什么

一、什么是 聚集索引、非聚集索引 在MySQL数据库中,索引是提高查询效率的关键。而聚集索引、非聚集索引、覆盖索引、索引下推其实是索引优化的重要策略之一。那这些名词的含义到底是什么呢? 在开始分析前,先来了解下 B 树的索引结构 和 回表…

腾讯云服务器如何购买?图文全流程,2024最新整理

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

【技术类-05】python实现docx段落文字加粗(Win32)

背景需求: 【技术类-04】python实现docx表格文字和段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”-CSDN博客文章浏览阅读1k次,点赞10次,收藏10次。【技术类-04】python实现docx表格…

MySQL表内容的增删查改

在前面几章的内容中我们学习了数据库的增删查改,表的增删查改,这一篇我们来学习一下对表中的内容做增删查改。 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 1.创建Create 我们先创建…

Zabbix Web界面中文汉化

要想达到上图的效果,第一步先查看 /usr/share/zabbix/assets/fonts/ [rootservice yum.repos.d]# ll /usr/share/zabbix/assets/fonts/ 总用量 0 lrwxrwxrwx. 1 root root 33 3月 23 16:58 graphfont.ttf -> /etc/alternatives/zabbix-web-font 继续查看graph…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下: add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

C++命名空间和内联函数

目录 命名空间 内联函数 概述 特性: 命名空间 在C/C中,变量,函数和和类这些名称都存在于全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,避免命名冲突或名字污染&…