鸿蒙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展开页面运行效果

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 08:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 08:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 08:50:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 08:50:03       20 阅读

热门阅读

  1. 从零开始学HCIA之网络自动化02

    2024-03-24 08:50:03       18 阅读
  2. (7-5-2)行为预测算法:Social LSTM轨迹预测算法

    2024-03-24 08:50:03       16 阅读
  3. 【DevOps构筑篇】负载均衡器及其不同技术策略

    2024-03-24 08:50:03       17 阅读
  4. Python小工具- 检测简繁体文字差异字(字库制作)

    2024-03-24 08:50:03       18 阅读
  5. memcached面试问题以及答案

    2024-03-24 08:50:03       18 阅读
  6. vue3之路由导航故障

    2024-03-24 08:50:03       17 阅读
  7. 栈内存和堆内存

    2024-03-24 08:50:03       18 阅读
  8. Openharmony

    2024-03-24 08:50:03       20 阅读
  9. Android 静默安装成功后自启动

    2024-03-24 08:50:03       22 阅读
  10. C++ 的标准模板库(STL)常用算法介绍

    2024-03-24 08:50:03       18 阅读
  11. Python学习(二):python常用命令

    2024-03-24 08:50:03       16 阅读