短視訊app開發,介面滑動到底的幾種實現方式
短視訊app開發,介面滑動到底的幾種實現方式
1.1 那麼說明一下 getLegt(),getTop(),getBottom(),getRight();其實就是獲取View自身到其父佈局的距離。
如:getLegt() 就是獲取自身左邊到父佈局左邊的距離;
getTop() 就是獲取自身上邊到父佈局上邊的距離;
1.2 那麼getX(),getY(),getRawX(),getRawY(); 是什麼呢?
假設上圖中View中的那個小圓點是我們點選觸控的位置,無論是ViewGroup還是View我們知道都是由onTouchEvent(MotionEvent event)處理,也就是說MotionEvent在與使用者互動關係極大。
那麼在MotionEvent中提供的獲取焦點座標的方法:
getX() 獲取當前點選事件距離控制元件左邊的位置。(檢視座標) (注意是控制元件左邊的位置也就是自身View)
getY() 獲取當前點選事件距離控制元件頂部位置。 (檢視座標) (注意是控制元件左邊的位置也就是自身View)
getRawX() 獲取點選事件距離螢幕左邊的位置。(絕對座標) (注意是當前螢幕也就是手機邊緣)
getRawY()獲取點選事件距離螢幕頂邊的位置。 (絕對座標) (注意是當前螢幕也就是手機邊緣)
------------------------------------------要注意分清MotionEvent中的座標系和1.1的座標系--------------------------------------------
1.3 View的滑動實現View的滑動也就是學會自定義View的基礎,在開發中我們難免會處理View的滑動,那麼實現View滑動的細想大概都是一致的記錄點選的觸控點手指移動記錄後觸控的座標計算偏移量,並通過偏移量更改View座標實現View的滑動,這邊只講解layout(),offsetTopAndBottom()與offsetLeftAndRight(),LayputParams(), 這幾種方法,對於動畫實現滑動或者Scroller,ScrollTo(),ScrollBy()留到下個章節講不然篇幅有點長。
1.3.1 layout()
View進行繪製的時候會呼叫onLayout()方法來設定View的顯示位置,那麼我們可以通過修改view的,left、top、right、bottom這4種屬性來控制View的座標,首先使用自定義View整合View 重寫onTouchEvent 方法即可。
@Override public boolean onTouchEvent(MotionEvent event) { //獲取手指觸控螢幕的橫座標和縱座標 int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()){ //手勢點選 case MotionEvent.ACTION_DOWN: mX=x; mY=y; break; //手勢滑動 case MotionEvent.ACTION_MOVE: //計算移動的距離 int flx= x-mX; int fly= y-mY; //呼叫layout方法讓View重新計算自己的位置 layout(getLeft()+flx,getTop()+fly,getRight()+flx,getBottom()+fly); break; //手勢抬起 case MotionEvent.ACTION_UP: break; } return true; }
接著在佈局因為我們自定義的View就可以實現滑動
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <com.example.myapplication.DemoView android:layout_width="80dp" android:layout_height="80dp" android:id="@+id/demoview" android:background="@color/colorPrimary" android:layout_margin="26dp"/> </LinearLayout>
如DemoView就是我實現的自定義View重寫了onTouEvent;
1.3.2 offsetTopAndBottom()與offsetLeftAndRight()
@Override public boolean onTouchEvent(MotionEvent event) { //獲取手指觸控螢幕的橫座標和縱座標 int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()){ //手勢點選 case MotionEvent.ACTION_DOWN: mX=x; mY=y; break; //手勢滑動 case MotionEvent.ACTION_MOVE: //計算移動的距離 int flx= x-mX; int fly= y-mY; offsetTopAndBottom(fly); offsetLeftAndRight(flx); break; //手勢抬起 case MotionEvent.ACTION_UP: break; } return true; }
offsetTopAndBottom()檢視座標圖會發現Bottom的計算是通過縱軸去定義所以我們把Y軸的偏移量給到了offsetTopAndBottomoffsetLeftAndRight 是通過橫軸去計算所以我們給到X 的偏移量給到offsetLeftAndRight
以上就是短視訊app開發,介面滑動到底的幾種實現方式, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2842876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 短視訊app開發,更改進度條的滑動速度APP
- 短視訊app開發,三種圖片並排展示的方式APP
- 短視訊程式原始碼,PageSlider實現滑動頁面原始碼IDE
- 短視訊平臺開發,依靠DrawerLayout實現側滑選單效果
- 短視訊平臺搭建,實現banner自動滑動展示效果
- 透過滑動視窗實現介面呼叫的多種限制策略
- 互動滑軌屏的幾種實現形式
- 互動投影的幾種實現方式
- 短視訊平臺原始碼,介面支援上下、左右的任意滑動原始碼
- Android端的短視訊開發,我們該如何快速實現移動端短視訊功能?Android
- 直播平臺軟體開發,監聽WebView滑動到底部的兩種方式WebView
- 短視訊app製作,實現訊息列表的左滑刪除或長按刪除APP
- Cordova開發app——短視訊拍攝APP
- android短視訊開發,仿三方軟體列表滑動Android
- 短影片app原始碼,日常開發之RecycleView滑動APP原始碼View
- android短視訊開發,實現動態點贊出現的點贊動畫Android動畫
- 短視訊app開發之ios小視訊開發經驗共享APPiOS
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼
- 短視訊直播系統開發直播短視訊程式搭建短視訊互動直播
- 短視訊app開發,Flutter StaggeredGridView的瀑布流效果APPFlutterView
- 短視訊app開發,長按將視訊儲存到相簿APP
- 短視訊系統,實現介面陰影效果
- 短視訊軟體開發,RecyclerView實現拖拽效果View
- 實現 JavaScript 沙箱的幾種方式JavaScript
- 圓形視訊和圓角視訊的一種實現方式
- 短視訊app開發,內部標題進行滾動播放APP
- 短視訊app開發,左滑刪除或長按彈出刪除選擇框APP
- 短影片app開發,可以借鑑的幾個登入介面設計APP
- 短視訊系統,長按側滑實現刪除的按鈕
- 短視訊app開發,點選視訊進行全屏播放APP
- 短視訊APP開發帶飛你的創業夢APP創業
- 短視訊app開發,短視訊動態功能上傳圖片時,規定圖片壓縮的大小APP
- 短視訊程式碼,ViewPager滑動方向改變Viewpager
- android短視訊開發,不設定滑動限制,可一直往下滑Android
- 直播app開發,實現輪播圖上下自動滑動展示效果APP
- AOP 有幾種實現方式?
- css3實現動畫有幾種方式?CSSS3動畫
- 直播app開發搭建,載入Html片段監聽滑動到底部APPHTML