鸿蒙ArkUI【开发移植Carbon】

项目介绍

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

移植版本:Branches/master

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

  • 让事情变得更简单(指定cornerRadius=‘dp’ 而不是创建一个xml 和/或一个ViewOutlineProvider)
  • 使其全部工作并在所有 API 上看起来都相同(例如 CheckBox 的左填充)
  • 真正向后移植功能(不要对阴影使用渐变!)
项目名称:Carbon
harmonyos_18">所属系列: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前往参考学习。

<a class=鸿蒙系统移植和裁剪定制.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展开页面运行效果


http://www.niftyadmin.cn/n/5447309.html

相关文章

【Linux】详谈命令行参数环境变量

目录 一、浅谈命令行参数 二、环境变量 2.1环境变量的内涵以及理解 2.2PATH环境变量&#xff1a; 2.3输入程序名就能运行我们的程序 2.4系统中的环境变量 2.5导出环境变量 三、main函数的第三个参数 3.1获得环境变量的三种方法 四、本地变量 一、浅谈命令行参数 我们的m…

用C++做一个植物大战僵尸

制作一个完整的“植物大战僵尸”游戏是一个非常大的项目&#xff0c;涉及图形渲染、碰撞检测、用户输入处理、音效、动画、游戏逻辑等多个方面。由于这个话题非常广泛&#xff0c;我可以提供一个简化的版本或者一个框架来启动你的项目。 以下是一个简化的框架&#xff0c;帮助…

Oracle 使用OGG(Oracle GoldenGate) 实现19c PDB与MySQL5.7 数据同步

OGG 是一种基于日志的结构化数据复制软件&#xff0c;它通过解析源数据库在线日志或归档日志获得数据的增删改变化。 OracleMysqlIP address192.168.80.100192.168.80.16DB version19.2.05.7host nametempmysql OS version&#xff1a; CentOS 7.9 一&#xff0c;Oracle 服务…

(使用C语言详解)求一个集合的全部子集(leetcode编程笔记)

原题链接&#xff1a;子集 (Subsets) - 力扣 (LeetCode) 原码于文章末尾会给出。 本文通过位运算&#xff0c;实现题目要求&#xff0c;之后可能更新其他方法&#xff0c;敬请关注...... 题目&#xff1a; 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该…

零基础机器学习(4)之线性回归的基本原理

文章目录 一、线性回归的基本原理1.相关与回归2.线性回归的原理分析①线性回归的一般公式②线性回归的损失函数③线性回归方程的参数求解方法A.最小二乘法B.梯度下降法 一、线性回归的基本原理 1.相关与回归 相关描述的是变量之间的一种关系。 从统计角度看&#xff0c;变量之…

零基础机器学习(5)之线性回归模型的性能评估

文章目录 线性回归模型的性能评估1.举例1-单一特征2.举例2-多特征 线性回归模型的性能评估 评估线性回归模型时&#xff0c;首先要建立评估的测试数据集&#xff08;测试集不能与训练集相同&#xff09;&#xff0c;然后选择合适的评估方法&#xff0c;实现对线性回归模型的评…

HTTPS协议的工作原理:保护网络通信的安全盾牌

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

图床项目实战:从零搭建一个简易图床

项目背景与需求分析 随着互联网的发展&#xff0c;图片分享、存储和管理的需求日益增长。图床作为一种专门用于存储和分享图片的服务&#xff0c;受到了广大用户的欢迎。本项目旨在搭建一个简易的图床系统&#xff0c;满足用户上传、查看和删除图片的基本需求。 技术选型 本项…