最近突发奇想,想实现下 类似新浪微博 或者 qq空间,播放视频,所以就在git上边找了一下,若有侵权,请及时联系我,立马删除,谢谢
本文仿照新浪微博/QQ空间实现了滑动自动播放视频的功能。
本文来自个人博客:http://www.zhangliwei.date
原文地址:http://zhangliwei.date/2016/09/05/Android%E4%BB%BF%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A%E6%BB%91%E5%8A%A8%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91/?utm_source=tuicool&utm_medium=referral
如有疑问欢迎讨论,感谢您的关注。
[](https://github.com/zzzlw/autovideoplayer#
[](https://github.com/zzzlw/autovideoplayer#关键代码)关键代码
[](https://github.com/zzzlw/autovideoplayer#1监听滚动事件)1.监听滚动事件
首先要给listview添加setOnScrollListener监听,注意这个监听在recyclerView上是addOnScrollListener,也就是说下面代码同时支持recyclerView。
public int firstVisible=0,visibleCount=0, totalCount=0;
videoList.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case AbsListView.OnScrollListener.SCROLL_STATE_FLING:
Log.e("videoTest", "SCROLL_STATE_FLING");
break;
case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
Log.e("videoTest", "SCROLL_STATE_IDLE");
autoPlayVideo(view);
break;
case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
Log.e("videoTest", "SCROLL_STATE_TOUCH_SCROLL");
break;
default:
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// firstVisibleItem 当前第一个可见的item
// visibleItemCount 当前可见的item个数
if (firstVisible == firstVisibleItem) {
return;
}
firstVisible = firstVisibleItem;
visibleCount = visibleItemCount;
totalCount = totalItemCount;
}
});监听里会有两个方法,<span style="box-sizing: border-box; font-weight: 600;">我们用onScroll方法记录 当前第一个可见Item,以及可见Item总数,用onScrollStateChanged来监听手滑动屏幕的整个过程。</span> 当onScrollStateChanged 中的scrollState字段值等于SCROLL_STATE_IDLE 时,代表本次滑动完毕并停止滚动
随时随地看视频