Android 實現(xiàn)滑動方法總結(jié)
Android 實現(xiàn)滑動方法總結(jié)
本文對Android 滑動提供了七種方法,對于每一種實現(xiàn)方法都進(jìn)行了詳細(xì)介紹,按照需要大家可以參考下,
1.1 用Layout方法
我們知道,當(dāng)view在繪制時會調(diào)用onlayout方法來設(shè)置顯示位置。同樣也可以通過view的left、top, right,buttom 四個屬性來控制view的坐標(biāo)。每次在ontouchevent的時候,我們都要獲取一下觸摸點的坐標(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);
//重新獲取偏移量,在獲取絕對坐標(biāo)的時候需要非常注意,因為如果這里不注意的話容易獲取錯誤的坐標(biāo) lastX = x; lastY = y; break; } return true; }
1.2 使用offsetLeftAndRight(),offsetTopAndBottom()
這個只要知道偏移量就可以使用此方法來進(jìn)行寵幸繪畫。相當(dāng)于對左右偏移和上下偏移做了一個封裝。
1.3 使用layoutparms來實現(xiàn)view的移動
這個要注意的是必須使用父布局類型的layoutpamrs,不然這里將會出錯;當(dāng)然有更簡便的方法,如果使用viewgroup.marginlayoutParams就不需要考慮父控件您的類型了。
1.4 使用scrollyTo和scrollBy來實現(xiàn)
在view 中,系統(tǒng)提供了scrollyTo和scrollyBy兩個方法來改變view的位置。這兩個方法非常好理解,scrollyto是移動到一個指定的位置,scrollyBy是移動的是view的一個偏移量,他實際上也調(diào)用了scrollyTo方法。他們只能改變view的內(nèi)容布局,而不能改變view本身的位置,并沒有實現(xiàn)真正意義上的滑動,他改變的是內(nèi)容的位置。如果在viewgroup中使用它移動的是所有的子view,而在view中使用,他移動的是view的內(nèi)容。還有就是他們的移動都是瞬間完成的,在事件觸發(fā)時就已經(jīng)完成了。
1.5 使用scroller
通過scrooler我們可以平滑的移動view,
1.6屬性動畫
1.7 viewdraghelper
通過viewdragHelper我們基本可以實現(xiàn)各種動畫操作。但是他的使用方法比較復(fù)雜:
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android ListView滑動改變標(biāo)題欄背景漸變效果
- Android開發(fā)中如何解決Fragment +Viewpager滑動頁面重復(fù)加載的問題
- Android用Scroller實現(xiàn)一個可向上滑動的底部導(dǎo)航欄
- Android嵌套RecyclerView左右滑動替代自定義view
- Android實現(xiàn)探探圖片滑動效果
- Android 頂部標(biāo)題欄隨滑動時的漸變隱藏和漸變顯示效果
- Android使用TabLayou+fragment+viewpager實現(xiàn)滑動切換頁面效果
- Android中Viewpager禁止滑動的實現(xiàn)
相關(guān)文章
Android編程實現(xiàn)EditText字?jǐn)?shù)監(jiān)聽并顯示的方法
這篇文章主要介紹了Android編程實現(xiàn)EditText字?jǐn)?shù)監(jiān)聽并顯示的方法,涉及Android EditText文本框事件監(jiān)聽與響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-02-02另外兩種Android沉浸式狀態(tài)欄實現(xiàn)思路
這篇文章主要為大家介紹了另外兩種Android沉浸式狀態(tài)欄實現(xiàn)思路,android5.0及以后版本都支持給狀態(tài)欄著色,而目前android主流版本還是4.4,想要深入了解的朋友可以參考一下2016-01-01詳解Android Studio3.5及使用AndroidX的一些坑
這篇文章主要介紹了詳解Android Studio3.5及使用AndroidX的一些坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Android TimerTask 的簡單應(yīng)用及注意事項
這篇文章主要介紹了Android TimerTask 的簡單應(yīng)用及注意事項的相關(guān)資料,需要的朋友可以參考下2017-06-06Android Map新用法:MapFragment應(yīng)用介紹
MapView ,MapActivity 這種的局限在于,必須要繼承MapActivity,否則無法使用MapView,但是,MapFragment 這種的局限在于,必須要安裝Google Play Service ,也就是說必須是原生rom。而且sdk要在12以上2013-01-01