一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

HarmonyOS系統(tǒng)中基礎(chǔ)UI組件

HarmonyOS開發(fā)者 ? 來(lái)源:HarmonyOS開發(fā)者 ? 作者:HarmonyOS開發(fā)者 ? 2021-09-16 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、UI組件概述

UI組件(以下簡(jiǎn)稱“組件”),是構(gòu)建界面的核心。

應(yīng)用中所有的界面元素都是由組件(Component)和組件容器(ComponentContainer)對(duì)象構(gòu)成。UI界面的構(gòu)成如下圖所示:

Component是繪制在屏幕上的一個(gè)對(duì)象,用戶能與之交互。Java UI框架提供了創(chuàng)建UI界面的各類組件,比如:文本、按鈕、圖片、列表等。每個(gè)組件通過對(duì)數(shù)據(jù)和方法的簡(jiǎn)單封裝,實(shí)現(xiàn)獨(dú)立的可視、可交互功能單元。

ComponentContainer是一個(gè)用于容納其他Component和ComponentContainer對(duì)象的容器。Java UI框架提供了一些標(biāo)準(zhǔn)布局功能的容器,它們繼承自ComponentContainer,一般以“Layout”結(jié)尾,如DirectionalLayout、DependentLayout等(由此可以看出,其實(shí)布局就是ComponentContainer,同時(shí)布局也是一種組件)。

二、基礎(chǔ)UI組件

Java UI框架提供了一部分Component和ComponentContainer的具體子類,即用于創(chuàng)建用戶界面的各類組件,用戶可通過組件進(jìn)行交互操作,并獲得響應(yīng)。根據(jù)組件的功能,可以將組件分為布局類、顯示類、交互類三類:

1. 布局類組件

布局類組件是提供了不同布局規(guī)范的組件容器,例如以單一方向排列的DirectionalLayout、以相對(duì)位置排列的DependentLayout、以確切位置排列的PositionLayout等。

常見的布局類組件如表1所示:

表1 常見的布局類組件

97830ee4-1634-11ec-8fb8-12bb97331649.png

2. 顯示類組件

顯示類組件提供了單純的內(nèi)容顯示,例如用于文本顯示的Text,用于圖像顯示的Image等。

常見的顯示類組件如表2所示:

表2 常見的顯示類組件

97c12850-1634-11ec-8fb8-12bb97331649.png

3. 交互類組件

交互類組件提供了具體場(chǎng)景下與用戶交互響應(yīng)的功能,例如Button提供了點(diǎn)擊響應(yīng)功能,Slider提供了進(jìn)度選擇功能等。

常見的交互類組件如表3所示:

表3 常見的交互類組件

97d543e4-1634-11ec-8fb8-12bb97331649.png

關(guān)于基礎(chǔ)UI組件的開發(fā),開發(fā)者可點(diǎn)擊下方官網(wǎng)鏈接進(jìn)行學(xué)習(xí)

官網(wǎng)鏈接:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-overview-0000000000500404

三、自定義UI組件

當(dāng)Java UI框架提供的組件無(wú)法滿足設(shè)計(jì)需求時(shí),開發(fā)者就可以創(chuàng)建自定義組件,根據(jù)設(shè)計(jì)需求添加繪制任務(wù),并定義組件的屬性及事件響應(yīng),完成組件的自定義。目前,已有300+的自定義UI組件在碼云社區(qū)開源,開發(fā)者可根據(jù)自己的需求,點(diǎn)擊下方鏈接下載使用:

下載鏈接:

https://gitee.com/openharmony-tpc/tpc_resource

同基礎(chǔ)UI組件一樣,本文將自定義UI組件分為布局類、顯示類、交互類三類。下面的章節(jié)將著重介紹自定義UI組件的使用。

1. 自定義布局類UI組件

自定義布局類組件是由開發(fā)者定義的具有特定布局規(guī)則的容器類組件,通過擴(kuò)展ComponentContainer或其子類實(shí)現(xiàn),將各子組件擺放到指定的位置,響應(yīng)用戶的滑動(dòng)、拖拽等事件。

小編在碼云社區(qū)找了一些較為常見的自定義布局類組件供大家參考,如表4所示:

表4 常見的自定義布局類組件

97ec598a-1634-11ec-8fb8-12bb97331649.png

本文將例舉ShadowLayout布局,闡述自定義布局類組件的使用。

ShadowLayout是一個(gè)可以控制界面元素的陰影顏色、范圍及顯示邊界的布局。效果展示如下:

依賴

開發(fā)者需在build.gradle中配置如下信息,引入組件庫(kù)

1.在項(xiàng)目根目錄下的build.gradle文件中,需進(jìn)行如下配置:

allprojects { repositories { maven { url ‘https://s01.oss.sonatype.org/content/repositories/releases/’ } }}

2.在entry模塊的build.gradle文件中,需進(jìn)行如下配置:

dependencies { implementation(‘com.gitee.chinasoft_ohos1.0.0’)}

使用步驟

1.對(duì)布局的基礎(chǔ)屬性進(jìn)行初始化,比如設(shè)置陰影半徑范圍、陰影顏色,及陰影大小等。

《com.lijiankun24.shadowlayout.v2.ShadowLayout ohos:height=“match_content” ohos:width=“match_content” ohos:layout_alignment=“center” ohos:shadowColor=“#660000” ohos:shadowDx=“0” ohos:shadowDy=“0” ohos:shadowRadius=“50” ohos:shadowSide=“0x1111” 》 《Image ohos:id=“$+id:image” ohos:height=“50vp” ohos:width=“50vp” ohos:layout_alignment=“center” ohos:background_element=“$graphic:background_ability_show” ohos:image_src=“$media:icon” ohos:scale_mode=“zoom_center” /》《/com.lijiankun24.shadowlayout.v2.ShadowLayout》

ShadowLayout屬性說明如表5所示:

表5 ShadowLayout自定義屬性

2.通過initComponent()方法初始化組件界面,并設(shè)置點(diǎn)擊事件監(jiān)聽器,監(jiān)聽界面點(diǎn)擊事件。

private void initComponent() { ShadowLayout slOval = (ShadowLayout) findComponentById(ResourceTable.Id_sl_oval); ShadowLayout slRectangle = (ShadowLayout) findComponentById(ResourceTable.Id_sl_rectangle); ShadowLayout slRadius = (ShadowLayout) findComponentById(ResourceTable.Id_sl_radius); slOval.setShadowColor(Color.getIntColor(“#FE3311F3”)); slRectangle.setShadowColor(Color.getIntColor(“#EE000000”)); slRadius.setShadowRadius(DEFAULT_RADIUS); Text textOval = (Text) findComponentById(ResourceTable.Id_text_oval); Text textRectangle = (Text) findComponentById(ResourceTable.Id_text_rectangle); Text textRadius = (Text) findComponentById(ResourceTable.Id_text_radius);

textOval.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { slOval.setShadowColor(Color.getIntColor(“#FEFFD700”)); } }); textRectangle.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { slRectangle.setShadowColor(Color.getIntColor(“#EE00FF7F”)); } });

textRadius.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { slRadius.setShadowRadius(RADIUS); } });}

photoView組件完整代碼下載鏈接:

https://gitee.com/openharmony-tpc/PhotoView

2. 自定義顯示類UI組件

自定義顯示類UI組件是開發(fā)者定義的具有內(nèi)容顯示特性的組件,通過擴(kuò)展Component或其子類實(shí)現(xiàn)??蓪⒏晃谋尽D片、進(jìn)度條等內(nèi)容,通過自定義的方式直觀地顯示給用戶。較為常見的自定義顯示類組件,如表6所示:

表6 常見的自定義顯示類組件

本文通過例舉PhotoView組件來(lái)闡述自定義顯示類組件的使用方法。

PhotoView組件是一個(gè)帶圖片縮放的功能的圖片播放器,效果展示如下,通過雙擊屏幕實(shí)現(xiàn)圖片的縮放功能。

依賴

開發(fā)者需在build.gradle中配置如下信息,引入組件庫(kù)

dependencies { implementation ‘io.openharmony.tpc.thirdlib1.1.1’}

使用步驟

1.在xml文件中創(chuàng)建布局,對(duì)組件的基礎(chǔ)屬性進(jìn)行初始化。

《?xml version=“1.0” encoding=“utf-8”?》《DirectionalLayoutxmlns:ohos=“http://schemas.huawei.com/res/ohos”xmlns:photo=“http://schemas.huawei.com/res/photo”ohos:height=“match_parent”ohos:width=“match_parent”ohos:id=“$+id:container”ohos:orientation=“vertical”》

《com.github.chrisbanes.photoview.PhotoView ohos:id=“$+id:photo_v” ohos:height=“match_parent” ohos:width=“match_parent” photo:image=“$media:wallpaper” /》《/DirectionalLayout》

2.初始化photoView

PhotoView photoView = (PhotoView) findComponentById (ResourceTable.Id_photo_v);photoView.setPixelMap(ResourceTable.Media_wallpaper);

3.創(chuàng)建photoView容器

/**創(chuàng)建頁(yè)面容器 * */@Overridepublic Object createPageInContainer(ComponentContainer componentContainer, int i) { final int data = list.get(i); PhotoView view = new PhotoView(context); view.setPixelMap(data); // 設(shè)置組件的布局參數(shù) view.setLayoutConfig(new ComponentContainer.LayoutConfig( ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT )); view.setPageSlider(slider); // 將組件添加到指定位置。 componentContainer.addComponent(view); return view;}

photoView組件完整代碼下載鏈接:

https://gitee.com/openharmony-tpc/PhotoView

3. 自定義交互類UI組件

自定義交互類UI組件是開發(fā)者定義具有交互特性的組件,通過擴(kuò)展Component或其子類實(shí)現(xiàn),可以響應(yīng)用戶的點(diǎn)擊、觸摸、長(zhǎng)按等操作,實(shí)現(xiàn)與用戶的交互。較為常見的自定義交互類組件,如表7所示:

表7 常見的自定義交互類組件

986b27b0-1634-11ec-8fb8-12bb97331649.png

本文通過SlideSwitch組件,來(lái)闡述自定義交互類組件的使用方法。

SlideSwitch在功能上屬于交互類組件。展示了不同樣式的開關(guān)按鈕,可以滑動(dòng)它來(lái)打開或關(guān)閉按鈕開關(guān)。

依賴

開發(fā)者需在build.gradle中配置如下信息,引入組件庫(kù):

allprojects{ repositories{ mavenCentral() }}implementation ‘io.openharmony.tpc.thirdlib1.0.3’

使用步驟

1.在xml文件中創(chuàng)建布局,對(duì)組件的基礎(chǔ)屬性進(jìn)行設(shè)置。

《com.leaking.slideswitch.SlideSwitchohos:id=“$+id:swit2”ohos:width=“190vp”ohos:height=“100vp”ohos:top_margin=“30vp”slideswitch:is_open=“true”slideswitch:shape=“2”slideswitch:theme_color=“#0a5a00”/》

2.監(jiān)聽滑動(dòng)開關(guān)的變化,并通過setState()方法設(shè)置開關(guān)的默認(rèn)狀態(tài)。

@Overridepublic void onStart(Intent intent) { super.onStart(intent); setUIContent(ResourceTable.Layout_ability_main); mSlideSwitch = (SlideSwitch) findComponentById(ResourceTable.Id_swit1); mSlideSwitch2 = (SlideSwitch) findComponentById(ResourceTable.Id_swit2); mText = (Text) findComponentById(ResourceTable.Id_text); mSlideSwitch.setSlideListener(this); // 控制開關(guān)按鈕的默認(rèn)狀態(tài) mSlideSwitch.setState(false);}

@Overridepublic void open(SlideSwitch slideSwitch) { if (slideSwitch.getId() == ResourceTable.Id_swit1) { mText.setText(“first switch is opend,and set the second one is ‘slideable’”); mSlideSwitch2.setSlideable(true); }}

@Overridepublic void close(SlideSwitch slideSwitch) { if (slideSwitch.getId() == ResourceTable.Id_swit1) { mText.setText(“first switch is closed,and set the second one is ‘unslideable’”); mSlideSwitch2.setSlideable(false); }}

SlideSwitch組件完整代碼下載鏈接:

https://gitee.com/openharmony-tpc/slideview

至此,就完成了自定義UI組件的使用。是不是超級(jí)方便呀!趕快到碼云社區(qū)下載源碼學(xué)習(xí)吧~

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7147

    瀏覽量

    125572
  • ui
    ui
    +關(guān)注

    關(guān)注

    0

    文章

    208

    瀏覽量

    21792
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33020

原文標(biāo)題:一文帶你看懂HarmonyOS UI組件的使用

文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    UI Design Kit助力精致開發(fā)體驗(yàn)

    在鴻蒙數(shù)字世界,從光的設(shè)計(jì)元素出發(fā),解構(gòu)真實(shí)世界的光、形、色,并沉淀在系統(tǒng)底座組件能力。同時(shí),對(duì)力的解構(gòu),從既有的“引力動(dòng)效”開始,進(jìn)一步構(gòu)建時(shí)間和空間的秩序。從“光、形、色,力、
    的頭像 發(fā)表于 07-14 17:12 ?330次閱讀

    HarmonyOS 5】鴻蒙頁(yè)面和組件生命周期函數(shù)

    HarmonyOS 5】鴻蒙頁(yè)面和組件生命周期函數(shù) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、生命周期階段: 創(chuàng)建階段 build: 構(gòu)建
    的頭像 發(fā)表于 07-11 18:24 ?284次閱讀

    HarmonyOS 5】金融應(yīng)用開發(fā)鴻蒙組件實(shí)踐

    HarmonyOS 5】金融應(yīng)用開發(fā)鴻蒙組件實(shí)踐 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、鴻蒙生態(tài)觀察 2024 年 1 月 18 日: 發(fā)布
    的頭像 發(fā)表于 07-11 18:20 ?280次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】金融應(yīng)用開發(fā)鴻蒙<b class='flag-5'>組件</b>實(shí)踐

    HarmonyOS AI輔助編程工具(CodeGenie)UI生成

    對(duì)應(yīng)的HarmonyOS UI代碼,其中包含HarmonyOS基礎(chǔ)工程、頁(yè)面布局、組件及屬性和資源文件等。 一、使用約束 建議使用DevEco Studio 5.0.3.700及以上版
    發(fā)表于 07-10 11:51

    HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項(xiàng)目講解

    框架的技術(shù)變革 在移動(dòng)操作系統(tǒng)的發(fā)展歷程,UI 開發(fā)模式經(jīng)歷了從 命令式到聲明式 的重大變革。 根據(jù)華為開發(fā)者聯(lián)盟 2024 年數(shù)據(jù)報(bào)告顯示,HarmonyOS 設(shè)備激活量已突破
    的頭像 發(fā)表于 07-07 11:57 ?148次閱讀
    【 <b class='flag-5'>HarmonyOS</b> 5 入門系列 】鴻蒙<b class='flag-5'>HarmonyOS</b>示例項(xiàng)目講解

    HarmonyOS next】ArkUI-X休閑益智連連看【進(jìn)階】

    ;: 統(tǒng)一UI描述:ArkTS聲明式語(yǔ)法在雙端生成原生UI組件 共享核心邏輯:TypeScript編寫的游戲算法(如BFS路徑搜索)直接復(fù)用 原生渲染引擎:各平臺(tái)使用系統(tǒng)原生渲染管線(
    發(fā)表于 06-28 21:51

    UI開發(fā)概述

    組件UI的必要元素,形成了在界面的樣子,由框架直接提供的稱為系統(tǒng)組件,由開發(fā)者定義的稱為自定義組件
    發(fā)表于 06-24 06:36

    HarmonyOS 5】鴻蒙的UIAbility詳解(三)

    HarmonyOS 5】鴻蒙的UIAbility詳解(三) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言 本文是鴻蒙的UIA
    的頭像 發(fā)表于 06-14 22:32 ?41次閱讀

    HarmonyOS基礎(chǔ)組件:Button三種類型的使用

    簡(jiǎn)介 HarmonyOS在明年將正式不再兼容Android原生功能,這意味著對(duì)于客戶端的小伙伴不得不開始學(xué)習(xí)HarmonyOS開發(fā)語(yǔ)言。本篇文章主要介紹鴻蒙的Button使用。 Harmon
    的頭像 發(fā)表于 06-09 15:48 ?254次閱讀
    <b class='flag-5'>HarmonyOS</b>基礎(chǔ)<b class='flag-5'>組件</b>:Button三種類型的使用

    HarmonyOS實(shí)戰(zhàn):組件化項(xiàng)目搭建

    前言 鴻蒙應(yīng)用開發(fā)已經(jīng)成為互聯(lián)網(wǎng)新的風(fēng)口,開發(fā)鴻蒙軟件已經(jīng)成為今年工作的核心目標(biāo)。在軟件開發(fā)過程,對(duì)于復(fù)雜度較大,功能較多的軟件都會(huì)采用組件化項(xiàng)目架構(gòu),那么對(duì)于鴻蒙應(yīng)用開發(fā)是否也能實(shí)現(xiàn)組件化呢
    的頭像 發(fā)表于 06-09 14:58 ?208次閱讀
    <b class='flag-5'>HarmonyOS</b>實(shí)戰(zhàn):<b class='flag-5'>組件</b>化項(xiàng)目搭建

    UIAbility組件生命周期介紹

    調(diào),在UIAbility的UI可見之前,如UIAbility切換至前臺(tái)時(shí)觸發(fā)。可以在onForeground()回調(diào)申請(qǐng)系統(tǒng)需要的資源,或者重新申請(qǐng)?jiān)趏nBackground()
    發(fā)表于 05-16 08:28

    UIAbility組件UI的數(shù)據(jù)同步介紹

    UIAbility組件UI的數(shù)據(jù)同步 基于當(dāng)前的應(yīng)用模型,可以通過以下幾種方式來(lái)實(shí)現(xiàn)UIAbility組件UI之間的數(shù)據(jù)同步。 使用EventHub進(jìn)行數(shù)據(jù)通信:在基類Cont
    發(fā)表于 05-16 06:10

    解決HarmonyOS應(yīng)用Image組件白塊問題的有效方案

    HarmonyOS應(yīng)用開發(fā)過程,通過Image組件加載網(wǎng)絡(luò)圖片時(shí),通常會(huì)經(jīng)歷四個(gè)關(guān)鍵階段:組件創(chuàng)建、圖片資源下載、圖片解碼和刷新。當(dāng)加載的圖片資源過大時(shí),Image
    的頭像 發(fā)表于 02-17 10:08 ?1115次閱讀
    解決<b class='flag-5'>HarmonyOS</b>應(yīng)用<b class='flag-5'>中</b>Image<b class='flag-5'>組件</b>白塊問題的有效方案

    HarmonyOS開發(fā)指導(dǎo)類文檔更新速遞(上)

    伴隨著HarmonyOS 5.0.0 Release版本的發(fā)布,HarmonyOS官網(wǎng)文檔也帶來(lái)了不少上新內(nèi)容。本期HarmonyOS NEXT開發(fā)者資料直通車將從文檔更新角度為開發(fā)者推薦應(yīng)用框架
    的頭像 發(fā)表于 12-30 09:50 ?1042次閱讀
    <b class='flag-5'>HarmonyOS</b>開發(fā)指導(dǎo)類文檔更新速遞(上)

    AWTK 最新動(dòng)態(tài):支持鴻蒙系統(tǒng)(HarmonyOS Next)

    導(dǎo)讀HarmonyOS是全球第三大移動(dòng)操作系統(tǒng),有巨大的市場(chǎng)潛力,在國(guó)產(chǎn)替代的背景下,機(jī)會(huì)多多,AWTK支持HarmonyOS,讓AWTK開發(fā)者也能享受HarmonyOS生態(tài)的紅利。A
    的頭像 發(fā)表于 11-06 08:03 ?841次閱讀
    AWTK 最新動(dòng)態(tài):支持鴻蒙<b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>HarmonyOS</b> Next)