开源地址:https://github.com/open-android/JieCaoVideoPlayer

主要特点

  1. 视频全屏播放和浮层小窗播放
  2. 可以完全自定义UI
  3. 能在ListViewViewPagerListViewViewPagerFragment等多重嵌套模式下全屏工作
  4. 手势修改进度和音量
  5. 视频大小的屏幕适配,宽或长至少有两个对边是充满屏幕的,另外两个方向居中
  6. 可以在加载、暂停、播放等各种状态中正常进入全屏和退出全屏
  7. 重力感应自动全屏
  8. WebView嵌套本地视频控件
  9. [支持https和rtsp]{https://developer.android.com/guide/topics/media/media-formats.html}
  10. 小于 100kb

效果

jiecaovideoplayer-5.3.apk

使用步骤

1. 在project的build.gradle添加如下代码(如下图)

allprojects {repositories {maven { url "https://jitpack.io" }}
}

2. 在Module的build.gradle添加依赖

  compile 'com.github.open-android:JieCaoVideoPlayer:0.1.0'

3.添加权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

4.在Activity中添加如下代码

listView = (ListView) findViewById(R.id.listview);
adapterVideoList = new VideoListAdapter(this);
listView.setAdapter(adapterVideoList);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorEventListener = new JCVideoPlayer.JCAutoFullscreenListener();

5.在Activity监听如下生命周期方法

@Override
public void onBackPressed() {if (JCVideoPlayer.backPress()) {return;}super.onBackPressed();
}@Override
protected void onResume() {super.onResume();Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);sensorManager.registerListener(sensorEventListener, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL);
}@Override
protected void onPause() {super.onPause();sensorManager.unregisterListener(sensorEventListener);JCVideoPlayer.releaseAllVideos();
}

6.新建一个Adapter继承BaseAdapter并且复制如下代码

public static final String TAG = "JieCaoVideoPlayer";int[] videoIndexs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Context context;
int pager = -1;public VideoListAdapter(Context context) {this.context = context;
}public VideoListAdapter(Context context, int pager) {this.context = context;this.pager = pager;
}@Override
public int getCount() {return pager == -1 ? videoIndexs.length : 4;
}@Override
public Object getItem(int position) {return null;
}@Override
public long getItemId(int position) {return position;
}@Override
public View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if (null == convertView) {viewHolder = new ViewHolder();LayoutInflater mInflater = LayoutInflater.from(context);convertView = mInflater.inflate(R.layout.item_videoview, null);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.jcVideoPlayer = (JCVideoPlayerStandard) convertView.findViewById(R.id.videoplayer);if (pager == -1) {viewHolder.jcVideoPlayer.setUp(VideoConstant.videoUrls[0][position], JCVideoPlayer.SCREEN_LAYOUT_LIST,VideoConstant.videoTitles[0][position]);System.out.println("fdsfdsfdsfdsfa setup " + position);Picasso.with(convertView.getContext()).load(VideoConstant.videoThumbs[0][position]).into(viewHolder.jcVideoPlayer.thumbImageView);} else {viewHolder.jcVideoPlayer.setUp(VideoConstant.videoUrls[pager][position], JCVideoPlayer.SCREEN_LAYOUT_LIST,VideoConstant.videoTitles[pager][position]);Picasso.with(convertView.getContext()).load(VideoConstant.videoThumbs[pager][position]).into(viewHolder.jcVideoPlayer.thumbImageView);}return convertView;
}class ViewHolder {JCVideoPlayerStandard jcVideoPlayer;
}

7.添加Adapter的item布局R.layout.item_videoview

<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandardandroid:id="@+id/videoplayer"android:layout_width="match_parent"android:layout_height="200dp" />

8.在AndroidManifest.xml中

<activityandroid:name=".MainActivity"android:configChanges="orientation|screenSize|keyboardHidden"android:screenOrientation="portrait" /> <!-- or android:screenOrientation="landscape"-->

完成如上步骤就可以实现今日头条视频播放列表功能 , 更多功能请参考样例工程app

欢迎关注微信公众号

高仿今日头条视频列表功能相关推荐

  1. android自定义视频列表,Github最火开源项目-高仿今日头条视频列表功能

    主要特点视频全屏播放和浮层小窗播放 可以完全自定义UI 能在ListView.ViewPager和ListView.ViewPager和Fragment等多重嵌套模式下全屏工作 手势修改进度和音量 视 ...

  2. android如何展示富文本_android高仿今日头条富文本编辑(发布文章)

    前言: 在经历了几个月的项目期限.我们遇到了前端发布文章,要用到富文本编辑的功能.在一番衡量下最终用到了richeditor-android第三方框架.实现原理就是通过webView和js实现前端富文 ...

  3. android 上下滚动文字_android高仿今日头条富文本编辑(发布文章)

    前言 在经历了几个月的项目期限.我们遇到了前端发布文章,要用到富文本编辑的功能.在一番衡量下最终用到了[richeditor-android](https://github.com/wasabeef/ ...

  4. android 仿写开发者头条,android高仿今日头条富文本编辑(发布文章)

    前言: 在经历了几个月的项目期限.我们遇到了前端发布文章,要用到富文本编辑的功能.在一番衡量下最终用到了richeditor-android第三方框架.实现原理就是通过webView和js实现前端富文 ...

  5. android 今日头条加载动画,高仿今日头条加载动画

    01 每每浏览手机app时,发现有的效果体验不错,作为一位程序员,总想要是自己来做,怎么实现. 今天我们来模仿今日头条的加载动画. 首先我们来看一下我们这个demo最终效果,有图有真相. 高仿今日头条 ...

  6. IOS每日精选源码,边缘识别导航条管理高仿今日头条语音查询汇率源码

    CIDetector边缘识别 超级简单的导航条管理工具EasyNavigation navigationbar 高仿今日头条频道选择弹框 iOS一个比较实用的侧边栏管理器 联动tableView,菜单 ...

  7. android 高仿苹果listview,GitHub - open-android/JieCaoVideoPlayer: 高仿今日头条ListView视频播放和优酷视频播放悬浮窗...

    ##主要特点 视频全屏播放和浮层小窗播放 可以完全自定义UI 能在ListView.ViewPager和ListView.ViewPager和Fragment等多重嵌套模式下全屏工作 手势修改进度和音 ...

  8. html仿今日头条数据列表

    例子代码下载:http://download.csdn.net/detail/friendan/9503019 效果截图: 收获如下: 1.使用Respond.js解决了Bootstrap3栅格系统不 ...

  9. android高仿今日头条小视频转场切换效果

    可以先看看今日头条效果 功能分析 点击列表上的一个item,该item会放大,最后直接全屏播放小视频,刚开始看上去,以为是个共享元素的转场动画, 后来想到,共享元素要在android 5.0以上支持, ...

最新文章

  1. maven 多环境打包
  2. mysql 从裤3523_MySQL出现3523错误分析
  3. android string拼接字符串_为什么阿里巴巴不建议在循环体中使用+进行字符串拼接?...
  4. 正整数分解为几个连续自然数之和
  5. http304状态码缓存设置问题
  6. 【Django】毕设学习笔记(六)
  7. git手动删除的文件 pul不下来了_Git工作总结
  8. SpringCloud学习笔记002---Spring Cloud实战微服务准备
  9. C++学习笔记(十二):重载函数
  10. 如何使用CORS解决跨域问题
  11. c++学习笔记--C++Primer第4版--标准库类型string
  12. 谈谈R中的乱码(一)
  13. 机顶盒直播点播源码方案开发
  14. VS2013/VS2017 Visual Assist X安装及破解
  15. 等式约束凸二次规划(拉格朗日乘子法)_python
  16. 十字链表实现矩阵存储
  17. 《学习笔记》使用AngularJS模板来创建视图
  18. JS淘宝商品广告效果
  19. informix mysql_Informix数据库查看数据库大小
  20. python人物关系网络图共现_文本分析之制作网络关系图

热门文章

  1. 成绩在C语言中怎么表示,c语言指数函数-分数在C语言中怎么表示分数和指数形式在C语 – 手机爱问...
  2. 语料标注平台BRAT安装指导
  3. Python实现股票查询
  4. Notepad++ 提示:An exception occurred due to plugin: HexEditor.dll 出错
  5. 【Excel】在单元格中插入换行符
  6. oracle12c配置文档,Oracle12C安装配置文档
  7. 微信二次开发sdk非ipad/android协议(很好用)
  8. java视频教程,Java面试资料
  9. 已知某分页系统,主存容量为 64K 字节,页面大小为 1K,对一个 4 页大的作 业,其 0、1、2、3 页分别被分配到主存的 2、4、6、7 块中,试:将十进制的逻 辑地址 1023、2500、35
  10. 同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好?