标签:color touch slide ttl tps 窗口 指定 tty views
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53638896
项目已开源到我的github: https://github.com/hejunlin2013/DragVideo
A Method to Drag the Video When Playing Video
一种在播放视频时,能够拖拽的方案
经常在爱奇艺网站上看电影,看到如果滑动掩盖了播放窗口后,就后在最下面有一个小播放界面。并且这个播放界面,是可以任意拖拽的。感觉很酷
既然web端能实现,就想了想在移动端设备上,是否也能实现这个效果,于是就有了…
关于ViewDragHelper要注意如下几点:
1.自定义的CustomViewDragHelper的初始化
ViewDragHelper一般用在一个自定义ViewGroup的内部,比如下面自定义了一个直接继承于ViewGroup的类DragvideoView,DragvideoView内部有一个mDragHelper作为成员变量:
创建一个带有回调接口的ViewDragHelper,这里是用MyHelperCallback,这些都是一些基本使用方法
拖动行为的处理已在注释中给出
当在MainActivity调用ViewDragHelper的setCallback方法时,以上回调就能作用了。当点击节目列表页(第一个显示listview的界面)的item时,调用playVideo()方法,方面内部通过DragVideoView.show方法,就开始显示DragVideoView。这时视频开始播放起来,并且,我们也可以对其进行拖拽了。
本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53638896
那么在拖动的过程中,我们要在DragVideoView中重写onTouchEvent方法,如下
以上方法最后,我们调用了,mDragHelper.processTouchEvent(event);也就是我们自定义的CustomViewDragHelper类,这个方法没有改动,就是ViewDragHelper的processTouchEvent方法。
本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53638896
总结下这个方法
在processTouchEvent中对ACTION_DOWN、ACTION_MOVE和ACTION_UP事件进行了处理:
接着到达forceSettleCapturedViewAt方法
上面start了ViewDragHelper中的mScroller,在滑动过程中,通过重写computeScroll方法,可用用ViewCompat.postInvalidateOnAnimation(this)方法重绘view
最后由于拖拽过程中的显示视频的TextureView会不断变化,通过设置TextureView.SurfaceTextureListener,来监听当前TextureView的变化过程。
第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。
标签:color touch slide ttl tps 窗口 指定 tty views
原文地址:http://blog.csdn.net/hejjunlin/article/details/53638896