付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android貝塞爾曲線(xiàn)初步學(xué)習(xí)第二課仿QQ未讀消息氣泡拖拽黏連效果
上一節(jié)初步了解了Android端的貝塞爾曲線(xiàn),這一節(jié)就舉個(gè)栗子練習(xí)一下,仿QQ未讀消息氣泡,是最經(jīng)典的練習(xí)貝塞爾曲線(xiàn)的東東,效果如下附上github源碼地址:/MonkeyMushroom/DragBubbleView
歡迎star~大體思路就是畫(huà)兩個(gè)圓,一個(gè)黏連小球固定在一個(gè)點(diǎn)上,一個(gè)氣泡小球跟隨手指的滑動(dòng)改變坐標(biāo)。隨著兩個(gè)圓間距越來(lái)越大,黏連小球半徑越來(lái)越小。當(dāng)間距小于一定值,松開(kāi)手指氣泡小球會(huì)恢復(fù)原來(lái)位置;當(dāng)間距超過(guò)一定值之后,黏連小球消失,氣泡小球繼續(xù)跟隨手指移動(dòng),此時(shí)手指松開(kāi),氣泡小球消失~1、首先老一套~新建attrs.xml文件,編寫(xiě)自定義屬性,新建DragBubbleView繼承View,重寫(xiě)構(gòu)造方法,獲取自定義屬性值,初始化Paint、Path等東東,重寫(xiě)onMeasure計(jì)算寬高,這里不再啰嗦~2、在onSizeChanged方法中確定黏連小球和氣泡小球的圓心坐標(biāo),這里我們?nèi)捀叩囊话耄?、經(jīng)分析氣泡小球有以下幾個(gè)狀態(tài):默認(rèn)、拖拽、移動(dòng)、消失,我們這里定義一下,方便根據(jù)不同的狀態(tài)分析不同情況:4、重寫(xiě)onTouchEvent方法,其中d代表兩圓圓心間距,maxD代表可拖拽的最大間距:如果控件外面有嵌套ListView、RecyclerView等攔截焦點(diǎn)的控件,那就在ACTION_DOWN中請(qǐng)求父控件不攔截事件:然后ACTION_UP再把事件還回去:5、在onDraw方法中畫(huà)圓、畫(huà)貝賽爾曲線(xiàn)、畫(huà)消息個(gè)數(shù)文本:其中計(jì)算二階貝塞爾曲線(xiàn)做需要的起點(diǎn)、終點(diǎn)和控制點(diǎn)坐標(biāo),順序是moveToA,quadToB,lineToC,quadToD,close
先來(lái)張示意圖:再上代碼6、氣泡復(fù)原的動(dòng)畫(huà),使用估值器計(jì)算坐標(biāo)7、順便來(lái)個(gè)氣泡狀態(tài)的監(jiān)聽(tīng)器,方便外部調(diào)用監(jiān)聽(tīng)其狀態(tài):8、關(guān)于氣泡爆炸的動(dòng)畫(huà),思路就是放幾張圖片到drawable里,然后動(dòng)態(tài)計(jì)數(shù)重繪,在onDraw中調(diào)用canvas.drawBitmap()方法,具體如下:在構(gòu)造方法中:然后在手指抬起的時(shí)候使用如下動(dòng)畫(huà):最后在onDraw中:9、在布局文件中使用該控件,并使用自定義屬性:其中android:clipChildren=”false”這個(gè)屬性可以使根布局下的子控件超出本身控件范圍的大小,加上這個(gè)屬性就可以滿(mǎn)屏幕隨意拖拽而不必拘泥于它本身的大小了,炒雞方便~還有如果覺(jué)得在屬性中設(shè)置消息個(gè)數(shù)不方便,需要在代碼中動(dòng)態(tài)獲取數(shù)據(jù)并設(shè)置的話(huà),只要在DragBubbleView中添加一個(gè)方法即可10、在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 13094-2025客車(chē)結(jié)構(gòu)安全要求
- 藥店醫(yī)保制度
- 公考調(diào)查面試題目及答案
- 科目一校車(chē)載客載貨題目及答案
- 養(yǎng)老院老人失智癥預(yù)防與照料制度
- 考智商的題目應(yīng)用題及答案
- 養(yǎng)老院老人健康監(jiān)測(cè)人員社會(huì)保險(xiǎn)制度
- 養(yǎng)老院家屬探訪制度
- 高數(shù)考研人物關(guān)系題目及答案
- 辦公室員工離職與入職管理制度
- 2026屆高考?xì)v史二輪突破復(fù)習(xí):高考中外歷史綱要(上下兩冊(cè))必考??贾R(shí)點(diǎn)
- 鐵路交通法律法規(guī)課件
- 2025年體育行業(yè)專(zhuān)家聘用合同范本
- 對(duì)于尼龍件用水煮的原因分析
- ECMO患者血糖控制與胰島素泵管理方案
- 消防安全操作規(guī)程操作規(guī)程
- 國(guó)家電投秋招面試題及答案
- 心臟驟停病人的護(hù)理
- 阿爾茨海默癥醫(yī)療護(hù)理查房
- 產(chǎn)權(quán)無(wú)償劃轉(zhuǎn)協(xié)議書(shū)
- WJ30059-2023軍工燃燒爆炸品工程設(shè)計(jì)安全規(guī)范
評(píng)論
0/150
提交評(píng)論