欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法

 更新時間:2016年12月15日 16:09:53   作者:逆流的魚yuiop  
這篇文章主要介紹了Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法的相關資料,一種在播放視頻時,能夠拖拽的方案,需要的朋友可以參考下

Android DragVideo實現(xiàn)播放視頻時任意拖拽

DragVideo

A Method to Drag the Video When Playing Video

一種在播放視頻時,能夠拖拽的方案

為什么有這個工程

經常在愛奇藝網站上看電影,看到如果滑動掩蓋了播放窗口后,就后在最下面有一個小播放界面。并且這個播放界面,是可以任意拖拽的。感覺很酷

這里寫圖片描述

既然web端能實現(xiàn),就想了想在移動端設備上,是否也能實現(xiàn)這個效果,于是就有了…

效果圖:


這里寫圖片描述 ——————> 這里寫圖片描述

實現(xiàn)思路:1、播放視頻的view選擇TextureView

2、ListView下方蓋上自定義ViewDragHelper,當在播放視頻時,通過自定義ViewDragHelper進行拖動TextureView

3、進行漸變處理,讓兩個view的文字能夠交替顯示

4、當TextureView到達右下方時,控制在水平方向上拖動,到達左邊界時,如果再滑動,就銷毀TextureView代碼分析:

關于ViewDragHelper要注意如下幾點:

1.ViewDragHelper.Callback是連接ViewDragHelper與view之間的橋梁(這個view一般是指擁子view的容器即parentView)。

2.ViewDragHelper的實例是通過靜態(tài)工廠方法創(chuàng)建的;你能夠指定拖動的方向;ViewDragHelper可以檢測到是否觸及到邊緣;

3.ViewDragHelper并不是直接作用于要被拖動的View,而是使其控制的視圖容器中的子View可以被拖動,如果要指定某個子view的行為,需要在Callback中想辦法;

4.ViewDragHelper的本質其實是分析onInterceptTouchEvent和onTouchEvent的MotionEvent參數(shù),然后根據(jù)分析的結果去改變一個容器中被拖動子View的位置( 通過offsetTopAndBottom(int offset)和offsetLeftAndRight(int offset)方法 ),他能在觸摸的時候判斷當前拖動的是哪個子View;

5.雖然ViewDragHelper的實例方法.ViewDragHelper create(ViewGroup forParent, Callback cb) 可以指定一個被ViewDragHelper處理拖動事件的對象,但ViewDragHelper類的設計決定了其適用于被包含在一個自定義ViewGroup之中,而不是對任意一個布局上的視圖容器使用ViewDragHelper。

1.自定義的CustomViewDragHelper的初始化

ViewDragHelper一般用在一個自定義ViewGroup的內部,比如下面自定義了一個直接繼承于ViewGroup的類DragvideoView,DragvideoView內部有一個mDragHelper作為成員變量:

這里寫圖片描述

創(chuàng)建一個帶有回調接口的ViewDragHelper,這里是用MyHelperCallback,這些都是一些基本使用方法
拖動行為的處理已在注釋中給出

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

當在MainActivity調用ViewDragHelper的setCallback方法時,以上回調就能作用了。當點擊節(jié)目列表頁(第一個顯示listview的界面)的item時,調用playVideo()方法,方面內部通過DragVideoView.show方法,就開始顯示DragVideoView。這時視頻開始播放起來,并且,我們也可以對其進行拖拽了。

這里寫圖片描述 

那么在拖動的過程中,我們要在DragVideoView中重寫onTouchEvent方法,如下

這里寫圖片描述

以上方法最后,我們調用了,mDragHelper.processTouchEvent(event);也就是我們自定義的CustomViewDragHelper類,這個方法沒有改動,就是ViewDragHelper的processTouchEvent方法。

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述 

總結下這個方法

在processTouchEvent中對ACTION_DOWN、ACTION_MOVE和ACTION_UP事件進行了處理:

1.在ACTION_DOWN中調用回調接口中的tryCaptureView方法,看當前touch的view是否允許拖動

2.在ACTION_MOVE中,view的坐標發(fā)生改變,調用回調接口中的onViewPositionChanged方法,根據(jù)坐標信息對view進行l(wèi)ayout,通過ViewHelper這個類中的setScaleX、setScaleY方法,實現(xiàn)在拖動的過程中view在XY坐標上進行相應比例的縮放;

3.在ACTION_UP后調用回調接口中的onViewReleased方法,此方法中一個重要的任務是在ACTION_UP事件后,實現(xiàn)view的自動滑動,這里主要是使用了ViewDragHelper中smoothSlideViewTo方法

這里寫圖片描述

接著到達forceSettleCapturedViewAt方法

這里寫圖片描述

上面start了ViewDragHelper中的mScroller,在滑動過程中,通過重寫computeScroll方法,可用用ViewCompat.postInvalidateOnAnimation(this)方法重繪view

這里寫圖片描述

最后由于拖拽過程中的顯示視頻的TextureView會不斷變化,通過設置TextureView.SurfaceTextureListener,來監(jiān)聽當前TextureView的變化過程。

這里寫圖片描述

項目下載地址:http://xiazai.jb51.net/201612/yuanma/DragVideo-master(jb51.net).rar

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • Android標題欄上添加多個Menu按鈕的實例

    Android標題欄上添加多個Menu按鈕的實例

    這篇文章主要介紹了Android標題欄上添加多個Menu按鈕的實例的相關資料,這里提供簡單實例說明如何添加多個menu按鈕的方法,需要的朋友可以參考下
    2017-09-09
  • Android App界面的ListView布局實戰(zhàn)演練

    Android App界面的ListView布局實戰(zhàn)演練

    這篇文章主要介紹了Android App界面的ListView布局方法,文中分了三種情況通過實例來講解,ListView適用于功能最簡單的應用程序UI布局,需要的朋友可以參考下
    2016-04-04
  • Android中shape的自定義藝術效果使用

    Android中shape的自定義藝術效果使用

    大家好,本篇文章主要講的是Android中shape的自定義藝術效果使用,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Android Notification的多種用法總結

    Android Notification的多種用法總結

    這篇文章主要介紹了Android Notification的多種用法總結的相關資料,需要的朋友可以參考下
    2017-06-06
  • Android數(shù)據(jù)加密之異或加密算法的實現(xiàn)方法

    Android數(shù)據(jù)加密之異或加密算法的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狝ndroid數(shù)據(jù)加密之異或加密算法的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Android中volley封裝實踐記錄

    Android中volley封裝實踐記錄

    這篇文章主要給大家介紹了關于Android中volley封裝實踐的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一學習學習吧
    2019-02-02
  • Android中home鍵和back鍵區(qū)別實例分析

    Android中home鍵和back鍵區(qū)別實例分析

    這篇文章主要介紹了Android中home鍵和back鍵區(qū)別,以實例形式較為詳細的分析并總結了home鍵和back鍵區(qū)別及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 解決EditText不顯示光標的三種方法(總結)

    解決EditText不顯示光標的三種方法(總結)

    下面小編就為大家?guī)硪黄鉀QEditText不顯示光標的三種方法(總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android開發(fā)之DOM解析xml文件的方法

    Android開發(fā)之DOM解析xml文件的方法

    這篇文章主要介紹了Android開發(fā)之DOM解析xml文件的方法,涉及Android中DOM工廠對象的創(chuàng)建,文檔的獲取及節(jié)點的遍歷技巧,需要的朋友可以參考下
    2015-12-12
  • 點擊微信內網頁a標簽直接跳轉打開淘寶APP的方法實例

    點擊微信內網頁a標簽直接跳轉打開淘寶APP的方法實例

    這篇文章主要給大家介紹了關于如何實現(xiàn)點擊微信內網頁a標簽直接跳轉打開淘寶APP的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-11-11

最新評論