欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

實(shí)例講解Android自定義控件

小編在此之前給大家介紹過(guò)關(guān)于Android自定義控件的用法等,需要的可以參考下:

創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為啟東企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),啟東網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

Android開(kāi)發(fā)之自定義控件用法詳解

詳解Android自定義控件屬性

實(shí)例講解Android自定義控件

可以看到QQ上的ToolBar其實(shí)就是一個(gè)自定義的view,可以看到不同的界面就是簡(jiǎn)單地修改了文字而已,在第二張與第三張尤其的明顯,我們就仿QQ的這個(gè)Toolbar設(shè)置一個(gè)自定義控件

在開(kāi)始之前,首先了解一下官方是如何實(shí)現(xiàn)一個(gè)控件的,比如說(shuō)一個(gè)Linearlayout

實(shí)例講解Android自定義控件

它不是有l(wèi)ayout_width和layout_height這兩個(gè)屬性嗎?其實(shí),這兩個(gè)屬性就是官方定義的

 實(shí)例講解Android自定義控件

官方的操作其實(shí)就是繼承了一個(gè)ViewGroup,Linearlayout相當(dāng)于一個(gè)自定義View,其中的方法我們也不用深究,我們打開(kāi)Path的那個(gè)路徑,可以找到一個(gè)atts.xml文件,打開(kāi)我們可以在里面看到定義了Linearlayout關(guān)于layout的屬性,有l(wèi)ayout_width和layout_height這幾個(gè)屬性,看到這里我們也就明白了我們?cè)诓季治募幸靡褂玫膶傩?/p>

正文開(kāi)始,我們講解一個(gè)自定義控件的步驟:

1.設(shè)計(jì)需要使用的屬性

先將模式切換為project模式

實(shí)例講解Android自定義控件

新建一個(gè)moudle

實(shí)例講解Android自定義控件

實(shí)例講解Android自定義控件

修改相關(guān)包名,庫(kù)名

實(shí)例講解Android自定義控件

實(shí)例講解Android自定義控件

這里選擇第一個(gè),也就是不創(chuàng)建activity界面,之后點(diǎn)擊finish就完成了

依次展開(kāi)Topbar->res->values,在values創(chuàng)建一個(gè)atts.xml文件

實(shí)例講解Android自定義控件

 xml文件代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <declare-styleable name="Topbar">
    <attr name="title" format="string"/>
    <attr name="titleTextSize" format="dimension"/>
    <attr name="titleTextColor" format="color"/>

    <attr name="leftTextColor" format="color"/>
    <attr name="leftBackgroud" format="reference|color"/>
    <attr name="leftText" format="string"/>

    <attr name="rightTextColor" format="color"/>
    <attr name="rightBackgroud" format="reference|color"/>
    <attr name="rightText" format="string"/>


  </declare-styleable>
</resources>

深入理解可以看看這一篇 http://blog.csdn.net/zjh_1110120/article/details/50976027

2.實(shí)現(xiàn)一個(gè)我們需要的控件

在topbar的java文件夾,新建一個(gè)Topbar類,使其繼承RelativeLayout

實(shí)例講解Android自定義控件

之后,重寫(xiě)其中帶有兩個(gè)參數(shù)的構(gòu)造方法,Attributeset這個(gè)類是用來(lái)存放之前定義在xml文件中的各種屬性

 實(shí)例講解Android自定義控件

 

之后,創(chuàng)建一個(gè)TypedArray類的對(duì)象ta,調(diào)用context的obtainStyleAttribute方法,獲取剛才我們創(chuàng)建的atts.xml中的各類屬性,第二個(gè)參數(shù)Topbar就是上文atts.xml中定義<declare-styleable name="Topbar">

實(shí)例講解Android自定義控件

之后,便是可以使用TypedArray類中的getxx方法來(lái)取得xml中定義的相關(guān)屬性,Topbar與atts.xml中定義的屬性使用下劃線連接

可以看到有些第二個(gè)參數(shù)為0,意思就是如果在布局文件沒(méi)有給控件的屬性沒(méi)有設(shè)置屬性值,就默認(rèn)為0

實(shí)例講解Android自定義控件

還要記得最后需要回收

之后獲得之前的屬性值,以此設(shè)置相關(guān)屬性

實(shí)例講解Android自定義控件

這里呢,當(dāng)我們?cè)诓季治募惺褂昧诉@個(gè)自定義控件的屬性時(shí)候,這個(gè)類就會(huì)獲得我們所輸入的屬性值,之后調(diào)用上述方法進(jìn)行設(shè)置

到這一步之后,我們還需要將左右button與標(biāo)題textview放在一個(gè)View中,使用LayoutPram的addview方法添加到VIew中

 首先聲明三個(gè)LayoutPram

實(shí)例講解Android自定義控件

進(jìn)行寬高設(shè)置之后,使用addView添加到View當(dāng)中

實(shí)例講解Android自定義控件

 到這一步,布局就是完成了,但是還要實(shí)現(xiàn)左右button的點(diǎn)擊事件,直接設(shè)置一個(gè)點(diǎn)擊的監(jiān)聽(tīng)器就是完成了

實(shí)例講解Android自定義控件

但是,這不是我們想要的模板,模板的話,是應(yīng)該直接在activity中設(shè)置監(jiān)聽(tīng)器不是更為快捷,而不應(yīng)該是在控件這里寫(xiě)相關(guān)的事件處理,所以,我們得使用接口回調(diào)機(jī)制

仿照button設(shè)置監(jiān)聽(tīng)器的方法,我們可以定義一個(gè)接口類topbarClickListener,在其中聲明兩個(gè)方法,對(duì)應(yīng)左按鈕的點(diǎn)擊與右按鈕的點(diǎn)擊事件,之后,聲明一個(gè)接口類對(duì)象listener,創(chuàng)建一個(gè)setOnTopbarClickListener方法,在其中將參數(shù)傳給之前聲明的listener

實(shí)例講解Android自定義控件

之后,修改左右button的點(diǎn)擊事件,使其調(diào)用接口里的方法,這樣就是完成了

實(shí)例講解Android自定義控件

三、引用我們的控件

引用就是像使用button那樣引用,進(jìn)行屬性的相關(guān)賦值,就如同我們使用button,textview等控件的屬性一樣

實(shí)例講解Android自定義控件

這里可以看到,有個(gè)cus,類似我們使用的android,像系統(tǒng)定義的button等控件,我們?cè)O(shè)置它的屬性都是需要寫(xiě)上android,之前有一句xmlns:android=http://schemas.android.com/apk/res/android

 這就是說(shuō)明使用的android本身的控件屬性,android這個(gè)相當(dāng)于一個(gè)名字,我們可以隨便寫(xiě),之后將后面的改為res-auto,之后使用我們的自定義屬性就是以我們之前寫(xiě)的名字為前綴,就如我圖中那樣

其中cus可以任意指定,但不能與系統(tǒng)的命名空間相同,在android studio中如上 用res-auto,在eclipse中res后需要完整的包名

右邊的預(yù)覽圖大家也可以看到實(shí)際的效果

大家在學(xué)習(xí)后如果有什么心得體會(huì)可以在下方直接給我們留言。

網(wǎng)頁(yè)題目:實(shí)例講解Android自定義控件
網(wǎng)頁(yè)鏈接:http://aaarwkj.com/article26/pcdicg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、軟件開(kāi)發(fā)微信小程序、網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
五月天丁香婷婷一区二区| 91九色视频免费观看| 亚洲精品一区二区免费看| 6080yy精品一区二区三区| 久久亚洲中文字幕精品熟女| 91欧美日韩中在线视频| 国产精品亚洲国产精品| 亚洲欧美综合区丁香六月| 九九视频在线观看免费观看| 国产精品久久久99| 十八禁在线观看网址免费| 欧美精品一区二区网址| 丰满人妻侵犯中文字幕| 国产精品午夜福利91| 国产精品日韩一区视频| 国产片精品一区在线观看| 黄片无毛欧美在线观看| 日韩一区二区高清看片| 日韩欧美一区二区免费| 亚洲欧美日韩一区91| 小骚货操死你视频在线观看| 亚洲精品日韩在线欧美| 日日嗨av特一级黄淫片| 亚洲av少妇一区二区成年男人| 久热99在线视频免费观看| 欧美激情中文字幕日韩精品| 韩国专区福利一区二区| 欧美日韩国产一区在线| 日韩女优中文字幕在线播放| 精品人妻va人妻中文字幕麻豆 | 亚洲一区二区日韩人妻| 日韩一级久久精品理论| 亚洲精品影视一区二区| 国产区av中文字幕在线观看| 亚洲熟女内射特写一区| 欧美午夜精品一二三区| 久久人妻精品一区二区三区| 韩国电视剧大全免费国语观看 | 国产精品国产三级国产av一区| 亚洲av日韩高清在线观看| 国产亚洲精品麻豆一区二区|