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

使用android控件怎么實(shí)現(xiàn)一個(gè)單擊拖動(dòng)效果-創(chuàng)新互聯(lián)

使用android控件怎么實(shí)現(xiàn)一個(gè)單擊拖動(dòng)效果?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

網(wǎng)站制作、網(wǎng)站設(shè)計(jì)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。

分析


setOnClickListener

setOnClickListener 可以接收控件的單擊動(dòng)作,無返回值

要想拖動(dòng)控件,就要利用 setOnTouchListener 自己定義了

setOnTouchListener

通過按下時(shí)的坐標(biāo)和移動(dòng)時(shí)的坐標(biāo)之間的差值,來計(jì)算移動(dòng)的距離,然后更改控件的位置以達(dá)到拖動(dòng)的目的
因 Touch 事件執(zhí)行完成后如果返回false則會(huì)繼續(xù)執(zhí)行單擊事件,不是我們想要的。如果直接返回true代表處理完了事件,不再執(zhí)行單擊事件,也不是我們想要的。
這時(shí)候就要判斷什么時(shí)候返回true,什么時(shí)候返回false,以達(dá)到同時(shí)實(shí)現(xiàn)單擊 + 拖動(dòng)的目的

實(shí)例代碼

綁定事件

//綁定拖動(dòng)事件
floatView.floatMenuIcon.setOnTouchListener(touchListener);
//綁定單擊事件,此處為lambda表達(dá)式
floatView.floatMenuIcon.setOnClickListener(view -> {
 EventBus.getDefault().post(AccessibilityService.GLOBAL_ACTION_BACK);
});

重寫onTouchListener

注意事項(xiàng)

ACTION_UP為手指抬起時(shí)執(zhí)行的事件,單擊事件的判斷放在此處,如果按下時(shí)的坐標(biāo)和抬起時(shí)的坐標(biāo)相差不大,我們視作單擊動(dòng)作,后期如果需要處理長(zhǎng)按動(dòng)作或雙擊動(dòng)作,道理差不多。

完整代碼

private final View.OnTouchListener touchListener = new View.OnTouchListener() {
 //記錄初使按下時(shí)的坐標(biāo),會(huì)因?yàn)橥蟿?dòng)而改變
 private float dX;
 private float dY;
 //記錄初使按下時(shí)的坐標(biāo),不因拖動(dòng)而改變
 private float sX;
 private float sY;

 @SuppressLint("ClickableViewAccessibility")
 @Override
 public boolean onTouch(View view, MotionEvent motionEvent) {
  switch (motionEvent.getAction()) {
   case MotionEvent.ACTION_DOWN:
    dX = motionEvent.getRawX();
    dY = motionEvent.getRawY();
    sX = motionEvent.getRawX();
    sY = motionEvent.getRawY();
    break;
   case MotionEvent.ACTION_MOVE:
    //拖動(dòng)事件,為了能夠?qū)崟r(shí)拖動(dòng),而非抬起后再移動(dòng),所以處理代碼放到ACTION_MOVE中
    float nX = (int) motionEvent.getRawX();
    float nY = (int) motionEvent.getRawY();
    float cW = nX - dX;
    float cH = nY - dY;
    dX = nX;
    dY = nY;
    layoutParams.x = (int) (layoutParams.x + cW);
    layoutParams.y = (int) (layoutParams.y + cH);
    windowManager.updateViewLayout(mView, layoutParams);
    break;
   case MotionEvent.ACTION_UP:
    //如果抬起時(shí)的位置和按下時(shí)的位置大致相同視作單擊事件
    //間隔值可能為負(fù)值,所以要取絕對(duì)值進(jìn)行比較
    if (Math.abs(motionEvent.getRawX() - sX) > 6 && Math.abs(motionEvent.getRawY() - sY) > 6) {
     return true;
    }
    break;
  }
  return false;
 }
};

看完上述內(nèi)容,你們掌握使用android控件怎么實(shí)現(xiàn)一個(gè)單擊拖動(dòng)效果的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站欄目:使用android控件怎么實(shí)現(xiàn)一個(gè)單擊拖動(dòng)效果-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://aaarwkj.com/article46/gcdeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、虛擬主機(jī)、App開發(fā)、做網(wǎng)站、服務(wù)器托管網(wǎng)站改版

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
黄色国产一区二区三区| 亚洲国产精品午夜福利在线播放 | 国产精品盗摄一区二区三区| 国产日韩欧美亚洲一区二区| 国产精品日韩理论在线| 精品人妻av区久久久| 日韩 高清 一区二区| 日韩视频一区二区三区系列| 欧美成人黄片免费播放| 91精品夜夜夜一区二区| 国产黄色一区二区三区四区| 国产女主播在线观看视频| 亚洲香蕉视频免费在线观看 | 另类激情综合在线观看| 人妻av在线中文字幕| 传媒在线免费观看视频| 国产免费久久黄av片| 91麻豆精品国产自产| 久亚洲精品色婷婷国产熟女 | 久视频这里只有精品99| 亚洲一区二区三区无人区| 深夜成人免费观看视频| 小黄片免费在线播放观看| 青青草原天堂在线免费观看| 男女午夜激情啪啪视频| 麻豆影片在线免费观看| 久久热视频这里有精品| 婷婷亚洲五月伊人91| 国产精品欧美色区福利在线| 日韩看片一区二区三区高清| 欧美人妻不卡一区二区久久| 四虎国产精品久久久久久网址| 日韩精品熟女中文字幕| 国产区一区二区三在线播放| 嫩草网站国产精品一区二| 国产亚洲日本一区二区三区| 国产传媒网约在线观看| 国产不卡的视频在线观看| 国产无人区码一区二区| 日韩一区二区三区免费播放 | 日韩精品国产一区二区在线|