0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ArkUI【開發(fā)移植Carbon】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-25 15:41 ? 次閱讀

項(xiàng)目介紹

本項(xiàng)目是基于開源項(xiàng)目[Carbon] 進(jìn)行harmonyos化的移植和開發(fā)的。

移植版本:Branches/master

這不是單純只是API和基本功能展示demo,它是最有用的自定義控件的實(shí)現(xiàn),如設(shè)計(jì)規(guī)范中所示。
Carbon試圖:

  • 讓事情變得更簡單(指定cornerRadius='dp' 而不是創(chuàng)建一個(gè)xml 和/或一個(gè)ViewOutlineProvider)
  • 使其全部工作并在所有 API 上看起來都相同(例如 CheckBox 的左填充)
  • 真正向后移植功能(不要對(duì)陰影使用漸變?。?/li>

項(xiàng)目名稱:Carbon

所屬系列:harmonyos的第三方組件適配移植

功能:一個(gè)適用于鴻蒙的自定義組件框架,幫助快速實(shí)現(xiàn)各種需要的效果

項(xiàng)目移植狀態(tài):大部分移植

調(diào)用差異:基本沒有使用差異,可以參照單元測(cè)試或原項(xiàng)目api進(jìn)行使用

支持功能

  • 支持自定義progressBar功能
  • 支持自定義RoundProgressBar功能
  • 支持Button不同點(diǎn)擊效果功能
  • 支持自定義SeekBar滑動(dòng)功能
  • 支持各種動(dòng)畫效果展示
  • 支持添加收藏組件,快速查找
  • 支持各種列表展示(包含頭像,文字等)功能
  • 支持展示控件代碼功能
  • 支持不同Dialog效果展示
  • 以及其它自定義效果/控件

安裝教程

方案一

可以先下載項(xiàng)目,將項(xiàng)目中的carbon庫提取出來放在所需項(xiàng)目中通過build配置

dependencies {
     implementation project(":carbon")
}

方案二

  • 1.項(xiàng)目根目錄的build.gradle中的repositories添加:
buildscript {
       repositories {
           ...
           mavenCentral()
       }
       ...
   }
   
   allprojects {
       repositories {
           ...
           mavenCentral()
       }
   }
dependencies {
    implementation 'com.gitee.ts_ohos:carbon:1.0.0'
}

使用說明

1.權(quán)限

需要網(wǎng)絡(luò)權(quán)限:
"name": "ohos.permission.INTERNET"

2.代碼使用

打開不同的設(shè)置頁面:  
            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 觸摸事件監(jiān)聽器(按下/抬起)(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;
            }
        });

        //對(duì)每個(gè)條目判斷是否收藏:
        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));

更多鴻蒙開發(fā)學(xué)習(xí)內(nèi)容[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]前往參考學(xué)習(xí)。

鴻蒙系統(tǒng)移植和裁剪定制.png

效果演示

demo部分組件運(yùn)行效果如下:

  • 主頁展示效果
  • What's new界面展示效果
  • 收藏頁面展示
  • Line chart頁面運(yùn)行效果
  • Theme頁面運(yùn)行效果
  • Backdrop及展開頁面運(yùn)行效果
  • Profiles頁面運(yùn)行效果
  • Circular_progress頁面運(yùn)行效果
  • Meuns頁面運(yùn)行效果
  • Music_player頁面運(yùn)行效果
  • Settings頁面運(yùn)行效果

主頁運(yùn)行效果what_new展開頁面運(yùn)行效果

favourties展開頁面運(yùn)行效果

line chart頁面運(yùn)行效果theme運(yùn)行效果

backdrop運(yùn)行效果backdrop展開頁面運(yùn)行效果

profiles運(yùn)行效果

circular_progress運(yùn)行效果meuns運(yùn)行效果

music_player展開頁面運(yùn)行效果

settings展開頁面運(yùn)行效果

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3125

    瀏覽量

    42068
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42482
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙ArkUI開發(fā)-Video組件的使用

    以視頻功能為例,在應(yīng)用開發(fā)過程中,我們需要通過ArkUI提供的Video組件為應(yīng)用增加基礎(chǔ)的視頻播放功能。借助Video組件,我們可以實(shí)現(xiàn)視頻的播放功能并控制其播放狀態(tài)。常見的視頻播放場(chǎng)景包括觀看網(wǎng)絡(luò)上的較為流行的短視頻,也包括查看我們存儲(chǔ)在本地的視頻內(nèi)容。
    的頭像 發(fā)表于 01-23 16:59 ?1039次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>-Video組件的使用

    鴻蒙ArkUI開發(fā)學(xué)習(xí):【渲染控制語法】

    ArkUI開發(fā)框架是一套構(gòu)建 HarmonyOS / OpenHarmony 應(yīng)用界面的聲明式UI開發(fā)框架,它支持程序使用?`if/else`?條件渲染,?`ForEach`?循環(huán)渲染以及?`LazyForEach`?懶加載渲染
    的頭像 發(fā)表于 04-09 16:40 ?799次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>學(xué)習(xí):【渲染控制語法】

    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X】

    **簡單來說,ArkTS + ArkUI-X 對(duì)標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺(tái)運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?802次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>學(xué)習(xí):初探【<b class='flag-5'>ArkUI</b>-X】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI跨平臺(tái)設(shè)計(jì)總體說明】

    本文檔描述ArkUI開發(fā)框架跨平臺(tái)運(yùn)行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1250次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI</b>-X基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b>跨平臺(tái)設(shè)計(jì)總體說明】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI代碼工程及構(gòu)建介紹】

    ArkUI作為OpenHarmony的默認(rèn)開發(fā)框架,在本項(xiàng)目(ArkUI-X)中需要做到一套代碼同時(shí)支持多平臺(tái)構(gòu)建,所以會(huì)采取共倉開發(fā)的方式,部分倉直接指向OpenHarmony相關(guān)開
    的頭像 發(fā)表于 05-25 16:45 ?1855次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI</b>-X基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b>代碼工程及構(gòu)建介紹】

    適用于鴻蒙的自定義組件框架Carbon案例教程

    項(xiàng)目名稱:Carbon 所屬系列:ohos的第三方組件適配移植 功能:一個(gè)適用于鴻蒙的自定義組件框架,幫助快速實(shí)現(xiàn)各種需要的效果 項(xiàng)目移植狀態(tài):大部分
    發(fā)表于 04-07 09:49 ?5次下載

    ArkUI新能力,助力應(yīng)用開發(fā)更便捷

    作者:niulihua,華為ArkUI技術(shù)專家;wanglei,華為ArkUI技術(shù)專家 ArkUI是一套構(gòu)建分布式應(yīng)用的聲明式UI開發(fā)框架。它具備簡潔自然的UI信息語法、豐富的UI組件
    的頭像 發(fā)表于 02-15 16:35 ?797次閱讀

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1409次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-應(yīng)用添加彈窗

    彈窗是一種模態(tài)窗口,通常用來展示用戶當(dāng)前需要的或用戶必須關(guān)注的信息或操作。在彈出框消失之前,用戶無法操作其他界面內(nèi)容。ArkUI為我們提供了豐富的彈窗功能
    的頭像 發(fā)表于 01-24 17:22 ?528次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>-應(yīng)用添加彈窗

    鴻蒙ArkUI開發(fā)實(shí)戰(zhàn):eTS版【笑話app】

    制作一款笑話app,使用ArkUI。
    的頭像 發(fā)表于 03-25 16:04 ?343次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):eTS版【笑話app】

    鴻蒙ArkUI:【從代碼到UI顯示的整體渲染流程】

    方舟開發(fā)框架(簡稱ArkUI)是鴻蒙開發(fā)的UI框架,提供如下兩種開發(fā)范式,我們 **只學(xué)聲明式開發(fā)
    的頭像 發(fā)表于 05-13 16:06 ?594次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>:【從代碼到UI顯示的整體渲染流程】

    鴻蒙跨平臺(tái)框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫個(gè)文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?622次閱讀
    <b class='flag-5'>鴻蒙</b>跨平臺(tái)框架:【<b class='flag-5'>ArkUi</b>-X】創(chuàng)建工程

    鴻蒙ArkUI-X跨平臺(tái)技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺(tái)應(yīng)用開發(fā)的初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI跨平臺(tái)應(yīng)用開發(fā)基本流程。
    的頭像 發(fā)表于 05-24 10:40 ?306次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>-X跨平臺(tái)技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X跨平臺(tái)開發(fā):【 編寫第一個(gè)ArkUI-X應(yīng)用】

    通過構(gòu)建一個(gè)簡單的ArkUI頁面跳轉(zhuǎn)示例,快速了解資源創(chuàng)建引用,路由代碼編寫和UI布局編寫等應(yīng)用開發(fā)流程。
    的頭像 發(fā)表于 05-21 17:36 ?468次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>-X跨平臺(tái)<b class='flag-5'>開發(fā)</b>:【 編寫第一個(gè)<b class='flag-5'>ArkUI</b>-X應(yīng)用】

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)的初學(xué)者。通過環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解跨平臺(tái)項(xiàng)目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?303次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>-X框架<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】