日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Android的Launcher中拖拽圖標(biāo),停留,顯示卸載

系統(tǒng) 2130 0

使用用ADW的Launcher的人應(yīng)該有點(diǎn)印象里面的功能,就是拖拽應(yīng)用或者Widget圖標(biāo)到刪除圖標(biāo)上,停留1秒以上,

則會(huì)顯示"Drop to uninstall"的提示,放開則打開卸載該程序的界面,現(xiàn)在就是要分析模仿這個(gè)功能。

主要用到有兩方面的東西,卸載和停留提示。

卸載主要使用的是:

從這個(gè)來看,要卸載一個(gè)應(yīng)用,主要是知道其PackageName即可。

當(dāng)拖拽圖標(biāo)到刪除欄上,停留超過一定時(shí)間的時(shí)候,就轉(zhuǎn)到卸載的模式,這個(gè)可以用Handler的

postDelayed ( Runnable r, long delayMillis)

來實(shí)現(xiàn)。

我們現(xiàn)在來分析一下拖拽所產(chǎn)生的響應(yīng)事件,

當(dāng)開始拖拽的時(shí)候,首先運(yùn)行的是:

onDragStart->onDragOver->onDragExit->onDragEnd.

當(dāng)把圖標(biāo)拖動(dòng)進(jìn)入刪除區(qū)域的時(shí)候,會(huì)執(zhí)行onDragEnter,移出則執(zhí)行onDragExit.

而如果圖標(biāo)是拖入到刪除區(qū)域再松開的話,則會(huì)是onDragEnter->onDragDrop->onDragExit->onDragEnd.

拖動(dòng)結(jié)束一定會(huì)執(zhí)行的兩個(gè)事件是onDragExit->onDragEnd.其中onDragExit在onDragEnd之前發(fā)生。

因此在onDragEnter的時(shí)候,讀取PackageName和postDelayed發(fā)送一個(gè)延遲消息給Runnable(設(shè)置卸載標(biāo)志)

然后在onDragExit里面再

removeCallbacks ( Runnable r)移除隊(duì)列里面的消息,

postDelayed一個(gè)消息,清空卸載標(biāo)志,當(dāng)然這里的延遲時(shí)間要比前面onDragEnter里面的時(shí)間要小得多,

這樣實(shí)現(xiàn)的效果是:

1. 如果是拖拽進(jìn)刪除區(qū)域,再拖出來的時(shí)候,會(huì)清空卸載標(biāo)志;

2. 如果是拖拽進(jìn)刪除區(qū)域足夠長(zhǎng)時(shí)間再放開(應(yīng)該打開卸載界面,已經(jīng)設(shè)置卸載標(biāo)志),確保延遲的時(shí)間內(nèi)onDragEnd已經(jīng)執(zhí)行,因?yàn)閜ostDelayed是清空卸載標(biāo)志的,所以如果要保留卸載標(biāo)志,需要延遲時(shí)間要比onDragEnd執(zhí)行時(shí)間大。

最后在onDragEnd的時(shí)候,判斷卸載標(biāo)志和程序PackageName如果符合條件則執(zhí)行卸載動(dòng)作。

呵呵,說得不是很清楚,下面上主要源碼:

onDragEnter:

onDragExit:

onDragEnd:

運(yùn)行效果圖:

Android的Launcher中拖拽圖標(biāo),停留,顯示卸載的分析

Android的Launcher中拖拽圖標(biāo),停留,顯示卸載的分析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 兴隆县| 兰西县| 道孚县| 宣恩县| 鹤壁市| 莱芜市| 威信县| 隆昌县| 威海市| 武功县| 南安市| 渑池县| 沧州市| 上栗县| 弥渡县| 滨州市| 南阳市| 筠连县| 道真| 海口市| 化州市| 平山县| 商城县| 瑞昌市| 广丰县| 上思县| 营山县| 滨州市| 庆安县| 屏边| 兴安盟| 诏安县| 莫力| 财经| 昌平区| 兴义市| 同心县| 内黄县| 安新县| 贵州省| 开平市|