- Hello HarmonyOS!:鴻蒙應(yīng)用開發(fā)從入門到精通
- 孫洋
- 886字
- 2022-05-06 15:42:19
2.3.3 Button
Button 是 UI 布局中的按鈕,是最常用的組件之一。按鈕最重要的作用是與用戶進(jìn)行交互。用戶通過點(diǎn)擊按鈕來完成特定的操作。Button組件繼承自Text類,并沒有自己特定的XML屬性,它的屬性和Te x t組件一樣。
本節(jié)不再重復(fù)介紹Te x t組件的屬性,主要介紹按鈕的點(diǎn)擊事件。
下面通過一個(gè)案例來介紹Button組件的使用。通過點(diǎn)擊“改變顏色”按鈕,改變Te x t組件的字體顏色。頁面的預(yù)覽效果如圖2-38所示。

圖2-38 點(diǎn)擊按鈕改變Text組件的字體顏色
這個(gè)案例為按鈕增加了一些樣式,新增樣式也會(huì)在這一節(jié)中進(jìn)行介紹,下面來看布局的代碼。test.xml文件的代碼如下。

首先,為Text組件和Button組件都增加了ohos:id屬性,它的屬性值寫法是固定的“$+id:組件Id”。“$+id:”是系統(tǒng)規(guī)定的語法,“組件Id”由開發(fā)者自己定義,然后就可以通過組件Id來獲得組件的實(shí)例,從而對(duì)其進(jìn)行操作。
Button組件的ohos:background_element屬性值為$graphic:background_button。這是一個(gè)自定義的屬性文件,這個(gè)文件把Button組件的樣式變成了圓角矩形、藍(lán)色背景。該文件在與 layout 同級(jí)的 graphic 目錄下,命名為 background_button.xml,如圖2-39所示,可以通過設(shè)置ohos:background_element屬性的屬性值為$graphic:background_button來引用這個(gè)文件。

圖2-39 graphic目錄下的自定義樣式
下面來看background_button.xml文件的內(nèi)容。

這是一個(gè)樣式文件,最外層節(jié)點(diǎn)是<shape>標(biāo)簽,它的 ohos:shape 屬性值被設(shè)置為 rectangle,表示該樣式的形狀為矩形。里面有兩個(gè)子標(biāo)簽,其中<corners>指定了矩形圓角的大小,ohos:radius屬性的含義是設(shè)置組件圓角的大小,這個(gè)數(shù)值越大,代表圓角越大。<solid>指定了矩形背景的填充顏色,通過ohos:color 屬性設(shè)置背景顏色。這兩個(gè)屬性把按鈕變成藍(lán)色圓角矩形的樣式。下面再來看Java代碼如何對(duì)按鈕設(shè)置點(diǎn)擊事件。


在這段代碼中,通過findComponentById(int resID)方法來獲取布局頁面中的組件實(shí)例,在組件設(shè)置了 ohos:id 屬性后,就可以通過 ResourceTable.type_name來引用。在這個(gè)例子中使用ResourceTable.Id_btn獲取Button組件的Id,使用 ResourceTable.Id_content 獲取 Text 組件的 Id,最后通過findComponentById()方法獲取組件實(shí)例。findComponentById()方法的返回值為Component對(duì)象,使用時(shí)需要將結(jié)果強(qiáng)制轉(zhuǎn)化為對(duì)應(yīng)的組件。
在獲取到組件實(shí)例后,通過btn.setClickedListener()方法為按鈕增加點(diǎn)擊事件,實(shí)現(xiàn)點(diǎn)擊事件 Component.ClickedListener()方法中的 onClick()方法。在這個(gè)方法內(nèi),通過text.setTextColor()方法來重新改變Text組件中字體的顏色。顏色對(duì)象直接通過new Color(Color.rgb(127,255,170))方法得到,顏色色值傳入的是RGB格式的十進(jìn)制數(shù)。
- Adobe創(chuàng)意大學(xué)After Effects CS5 產(chǎn)品專家認(rèn)證標(biāo)準(zhǔn)教材
- 現(xiàn)代企業(yè)應(yīng)用設(shè)計(jì)指南
- Hi!扁平化Photoshop扁平化用戶界面設(shè)計(jì)教程
- SolidWorks 2008機(jī)械設(shè)計(jì)一冊(cè)通
- Microsoft BizTalk Server 2010 Patterns
- 移動(dòng)App測(cè)試的22條軍規(guī)
- Oracle VM Manager 2.1.2
- 影視動(dòng)畫場景與特效制作:3ds Max-Vue-AfterBurn-FumeFX
- 會(huì)聲會(huì)影視頻編輯實(shí)戰(zhàn)秘技250招
- UG NX 12.0完全自學(xué)寶典
- 中文版3ds Max/VRay效果圖制作完全自學(xué)教程(實(shí)例培訓(xùn)教材版)
- Photoshop CC 2017 淘寶美工設(shè)計(jì)實(shí)例教程
- AI繪畫+LoRA模型訓(xùn)練從新手到高手
- SPSS統(tǒng)計(jì)分析與應(yīng)用
- Photoshop CC 2015 標(biāo)準(zhǔn)教程(清華電腦學(xué)堂)