Android 實(shí)現(xiàn)滑動(dòng)方法總結(jié)
Android 實(shí)現(xiàn)滑動(dòng)方法總結(jié)
本文對(duì)Android 滑動(dòng)提供了七種方法,對(duì)于每一種實(shí)現(xiàn)方法都進(jìn)行了詳細(xì)介紹,按照需要大家可以參考下,
1.1 用Layout方法
我們知道,當(dāng)view在繪制時(shí)會(huì)調(diào)用onlayout方法來(lái)設(shè)置顯示位置。同樣也可以通過(guò)view的left、top, right,buttom 四個(gè)屬性來(lái)控制view的坐標(biāo)。每次在ontouchevent的時(shí)候,我們都要獲取一下觸摸點(diǎn)的坐標(biāo)。
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = x;
lastY = y;
break;
case MotionEvent.ACTION_MOVE:
int offsetx = (int) (x - lastX);
int offsety = (int) (y - lastY);
layout(getLeft() + offsetx, getTop() + offsety, getRight() + offsetx, getBottom() + offsety);
//重新獲取偏移量,在獲取絕對(duì)坐標(biāo)的時(shí)候需要非常注意,因?yàn)槿绻@里不注意的話容易獲取錯(cuò)誤的坐標(biāo)
lastX = x;
lastY = y;
break;
}
return true;
}
1.2 使用offsetLeftAndRight(),offsetTopAndBottom()
這個(gè)只要知道偏移量就可以使用此方法來(lái)進(jìn)行寵幸繪畫(huà)。相當(dāng)于對(duì)左右偏移和上下偏移做了一個(gè)封裝。
1.3 使用layoutparms來(lái)實(shí)現(xiàn)view的移動(dòng)
這個(gè)要注意的是必須使用父布局類型的layoutpamrs,不然這里將會(huì)出錯(cuò);當(dāng)然有更簡(jiǎn)便的方法,如果使用viewgroup.marginlayoutParams就不需要考慮父控件您的類型了。
1.4 使用scrollyTo和scrollBy來(lái)實(shí)現(xiàn)
在view 中,系統(tǒng)提供了scrollyTo和scrollyBy兩個(gè)方法來(lái)改變view的位置。這兩個(gè)方法非常好理解,scrollyto是移動(dòng)到一個(gè)指定的位置,scrollyBy是移動(dòng)的是view的一個(gè)偏移量,他實(shí)際上也調(diào)用了scrollyTo方法。他們只能改變view的內(nèi)容布局,而不能改變view本身的位置,并沒(méi)有實(shí)現(xiàn)真正意義上的滑動(dòng),他改變的是內(nèi)容的位置。如果在viewgroup中使用它移動(dòng)的是所有的子view,而在view中使用,他移動(dòng)的是view的內(nèi)容。還有就是他們的移動(dòng)都是瞬間完成的,在事件觸發(fā)時(shí)就已經(jīng)完成了。
1.5 使用scroller
通過(guò)scrooler我們可以平滑的移動(dòng)view,
1.6屬性動(dòng)畫(huà)
1.7 viewdraghelper
通過(guò)viewdragHelper我們基本可以實(shí)現(xiàn)各種動(dòng)畫(huà)操作。但是他的使用方法比較復(fù)雜:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android ListView滑動(dòng)改變標(biāo)題欄背景漸變效果
- Android開(kāi)發(fā)中如何解決Fragment +Viewpager滑動(dòng)頁(yè)面重復(fù)加載的問(wèn)題
- Android用Scroller實(shí)現(xiàn)一個(gè)可向上滑動(dòng)的底部導(dǎo)航欄
- Android嵌套R(shí)ecyclerView左右滑動(dòng)替代自定義view
- Android實(shí)現(xiàn)探探圖片滑動(dòng)效果
- Android 頂部標(biāo)題欄隨滑動(dòng)時(shí)的漸變隱藏和漸變顯示效果
- Android使用TabLayou+fragment+viewpager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面效果
- Android中Viewpager禁止滑動(dòng)的實(shí)現(xiàn)
相關(guān)文章
android studio 3.0 升級(jí) 項(xiàng)目遇到的問(wèn)題及更改思路(問(wèn)題小結(jié))
Android Studio從3.0版本新增了許多功能,當(dāng)然首當(dāng)其沖就是從3.0版本新增了對(duì) Kotlin 開(kāi)發(fā)語(yǔ)言的支持,除此之外還有其他一些新功能。很多小伙伴在android studio 3.0 升級(jí)項(xiàng)目遇到很多問(wèn)題,下面小編給大家分享一些問(wèn)題小結(jié)及解決辦法,一起看看吧2017-11-11
Android仿淘寶view滑動(dòng)至屏幕頂部會(huì)一直停留在頂部的位置
這篇文章主要介紹了Android仿淘寶view滑動(dòng)至屏幕頂部會(huì)一直停留在頂部的位置的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
ubuntu上在androidstudio中啟動(dòng)emulator閃退的解決方法
在AndrodStudio中點(diǎn)擊模擬器的啟動(dòng)按鈕后,模擬器界面彈出后,又立刻閃退。下面通過(guò)本文給大家分享ubuntu上在androidstudio中啟動(dòng)emulator閃退的解決方法,一起看看吧2017-07-07
Android實(shí)現(xiàn)水波紋擴(kuò)散效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)水波紋擴(kuò)散效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android實(shí)現(xiàn)炫酷的CheckBox效果
大家是不是對(duì)系統(tǒng)自帶的CheckBox產(chǎn)生乏味感了呢?今天這篇文章給大家?guī)?lái)的是一款全新的CheckBox,下面來(lái)一起看看下面的CheckBox吧!有需要的朋友們可以參考借鑒。2016-10-10
Android獲取分享應(yīng)用列表詳解及實(shí)例
這篇文章主要介紹了Android獲取分享應(yīng)用列表詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04
android?ViewPager實(shí)現(xiàn)一個(gè)無(wú)限輪播圖
大家好,本篇文章主要講的是android?ViewPager實(shí)現(xiàn)一個(gè)無(wú)限輪播圖,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02
Android實(shí)現(xiàn)手勢(shì)劃定區(qū)域裁剪圖片
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手勢(shì)劃定區(qū)域裁剪圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

