Android仿新浪微博QQ空间滑动自动播放视频功能

Android仿新浪微博QQ空间滑动自动播放视频功能,第1张

概述先来看看效果图关键代码1.监听滚动事件首先要给listview添加setOnScrollListener监听,注意这个监听在recyclerView上是addOnScrollListener,也就是说下面代码同时支持recyclerView。

先来看看效果图


关键代码

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;    }  });

监听里会有两个方法,我们用onScroll方法记录 当前第一个可见Item,以及可见Item总数,用onScrollStateChanged来监听手滑动屏幕的整个过程。 当onScrollStateChanged 中的scrollState字段值等于SCRolL_STATE_IDLE 时,代表本次滑动完毕并停止滚动🙄感兴趣的朋友可以自行百度另外两个参数的意思,没准对你的需求有帮助🙄。

2.处理视频逻辑

  voID autoplayVIDeo(AbsListVIEw vIEw){  Log.e("vIDeoTest","firstVisiblePos = " + firstVisible + "visibleItemCount = " + visibleCount);  for (int i = 0; i < visibleCount; i++) {    if (vIEw!=null&&vIEw.getChildAt(i)!=null&&vIEw.getChildAt(i).findVIEwByID(R.ID.vIDeoplayer) != null) {      JCVIDeoPlayerStandard vIDeoPlayerStandard1 = (JCVIDeoPlayerStandard) vIEw.getChildAt(i).findVIEwByID(R.ID.vIDeoplayer);      Rect rect = new Rect();      vIDeoPlayerStandard1.getLocalVisibleRect(rect);      int vIDeoheight3 = vIDeoPlayerStandard1.getHeight();      Log.e("vIDeoTest","i="+i+"==="+"vIDeoheight3:"+vIDeoheight3+"==="+"rect.top:"+rect.top+"==="+"rect.bottom:"+rect.bottom);      if (rect.top==0&&rect.bottom==vIDeoheight3)      {        if (vIDeoPlayerStandard1.currentState == JCVIDeoPlayer.CURRENT_STATE_norMAL || vIDeoPlayerStandard1.currentState == JCVIDeoPlayer.CURRENT_STATE_ERROR) {          Log.e("vIDeoTest",vIDeoPlayerStandard1.currentState + "======================performClick======================");          vIDeoPlayerStandard1.startbutton.performClick();          VPApplication.instance.VIDeoPlaying=vIDeoPlayerStandard1;        }        return;      }    }  }  Log.e("vIDeoTest","======================releaseAllVIDeos=====================");  JCVIDeoPlayer.releaseAllVIDeos();  VPApplication.instance.VIDeoPlaying=null;}

首先是根据总数循环判断 Item 是否有视频,如果有再利用Rect类获取视图在屏幕坐标中的可视区域。

小结

好了,基本核心代码就是以上的这些,是不是很简单呢?感兴趣的大家快快自己动手 *** 作起来吧,希望这篇文章对大家能有所帮助,如果有疑问大家可以留言交流。

总结

以上是内存溢出为你收集整理的Android仿新浪微博/QQ空间滑动自动播放视频功能全部内容,希望文章能够帮你解决Android仿新浪微博/QQ空间滑动自动播放视频功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1148289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存