官术网_书友最值得收藏!

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ù)。

主站蜘蛛池模板: 贵南县| 楚雄市| 青海省| 鹿泉市| 余庆县| 兴山县| 平乐县| 芦山县| 江华| 泰宁县| 千阳县| 三穗县| 惠来县| 滕州市| 和龙市| 镇远县| 新安县| 彩票| 明水县| 双城市| 漾濞| 仁寿县| 新乡市| 峨山| 通化市| 红安县| 祁东县| 错那县| 白河县| 武隆县| 通江县| 浦江县| 崇明县| 乃东县| 高碑店市| 桃园县| 天柱县| 浙江省| 治县。| 兴城市| 龙江县|