自學(xué)鴻蒙應(yīng)用開發(fā)(30)- 自定義UI組件(1)
任何一種開發(fā)工具也不可能為開發(fā)者提供所有的組件,根據(jù)現(xiàn)有組件定義自己的組件也就成為必需。接下來的幾篇文章我們定義一個多層圓弧形進度條。本文是第一篇。
定義組件類
首先定義一個Component的派生類并簡單地定義幾個構(gòu)造函數(shù)。
package com.components.cusomized;import ohos.agp.components.AttrSet;import ohos.agp.components.Component;import ohos.agp.render.Canvas;import ohos.agp.utils.Color;import ohos.app.Context;import ohos.hiviewdfx.HiLog;import ohos.hiviewdfx.HiLogLabel;import ohos.multimodalinput.event.TouchEvent;public class MultiRoundProgressBar extends Component {// HiLogLabelprivate static final HiLogLabel Label = new HiLogLabel(HiLog.LOG_APP, 0x00101, "MultiRoundProgressBar");public MultiRoundProgressBar(Context context) {super(context);}public MultiRoundProgressBar(Context context, AttrSet attrSet) {super(context, attrSet);}public MultiRoundProgressBar(Context context, AttrSet attrSet, String styleName) {super(context, attrSet, styleName);}public MultiRoundProgressBar(Context context, AttrSet attrSet, int resId) {super(context, attrSet, resId);}}
這個目前沒有任何功能,只是先占一個地方。稍微需要注意一下的是它所屬的package為:com.components.cusomized。
使用自定義組件
可以像鴻蒙原生組件一樣使用自定義組件:
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:orientation="vertical"><Textohos:id="$+id:text_helloworld"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="horizontal_center"ohos:text="$string:HelloWorld"ohos:text_size="50"/><com.components.cusomized.MultiRoundProgressBarohos:id="$+id:mrprogressId"ohos:height="match_parent"ohos:width="match_parent"ohos:background_element="#00FF00"/></DirectionalLayout>
代碼第16行通過package+類名的方式使用自定義組件。
顯示效果
下圖中綠色部分就是自定義組件的表示區(qū)域。

下一篇文章我們繼續(xù)說明如何為自定義組件定義描畫動作。
作者著作介紹
《實戰(zhàn)Python設(shè)計模式》是作者去年3月份出版的技術(shù)書籍,該書利用Python 的標(biāo)準(zhǔn)GUI 工具包tkinter,通過可執(zhí)行的示例對23 個設(shè)計模式逐個進行說明。這樣一方面可以使讀者了解真實的軟件開發(fā)工作中每個設(shè)計模式的運用場景和想要解決的問題;另一方面通過對這些問題的解決過程進行說明,讓讀者明白在編寫代碼時如何判斷使用設(shè)計模式的利弊,并合理運用設(shè)計模式。

對設(shè)計模式感興趣而且希望隨學(xué)隨用的讀者通過本書可以快速跨越從理解到運用的門檻;希望學(xué)習(xí)Python GUI 編程的讀者可以將本書中的示例作為設(shè)計和開發(fā)的參考;使用Python 語言進行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書中的示例為基礎(chǔ),迅速構(gòu)建自己的系統(tǒng)架構(gòu)。
覺得本文有幫助?請分享給更多人。
關(guān)注微信公眾號【面向?qū)ο笏伎肌枯p松學(xué)習(xí)每一天!
面向?qū)ο箝_發(fā),面向?qū)ο笏伎迹?/span>
