循环添加视频view  图片view

for (int i = 0 ;i

if (beansArrayList.get(i).getType()==1){

videoPlayer = new NiceVideoPlayer(this);

controller = new TxVideoPlayerController(this);

videoPlayer.setController(controller);

videoPlayer.setUp(beansArrayList.get(i).getVideo(),null);

videoPlayer.continueFromLastPosition(false);

videoPlayer.setOnStart(new NiceVideoPlayer.onStart() {

@Override

public void start() {

bannerView.startLoop(false);

}

});

controller.setOnRestartPause(new TxVideoPlayerController.onRestartPause() {

@Override

public void onStart(boolean start) {

bannerView.startLoop(start);

}

@Override

public void onRestart() {

}

});

GlideLoading.setImage(this,beansArrayList.get(i).getStrUrl(),controller.imageView());

viewList.add(videoPlayer);

}else {

ImageView img = new ImageView(this);

img.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

img.setScaleType(ImageView.ScaleType.FIT_XY);

img.setAdjustViewBounds(true);

final int finalI = i;

img.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

ArrayList imgUrl = new ArrayList<>();

int position = 0;

for (int j = 0 ;j

if (beansArrayList.get(j).getStrUrl().equals(beansArrayList.get(finalI).getStrUrl())){

position = j ;

}

imgUrl.add(beansArrayList.get(j).getStrUrl());

}

PreviewPhone.previewPhone(ActivityProductDetails.this,imgUrl,position,v);

}

});

GlideLoading.setImage(this,beansArrayList.get(i).getStrUrl(),img);

viewList.add(img);

}

}

bannerView.startLoop(true);

bannerView.setOnPageSelected(new BannerView.onPageSelected() {

@Override

public void onNext() {

if (videoPlayer != null){

if (videoPlayer.isPlaying()){

bannerView.startLoop(true);

videoPlayer.pause();

}

}

}

@Override

public void onTouchEvent(MotionEvent ev) {

switch (ev.getAction()) {

case MotionEvent.ACTION_DOWN:

bannerView.startLoop(false);

break;

case MotionEvent.ACTION_MOVE:

bannerView.startLoop(false);

break;

case MotionEvent.ACTION_UP:

case MotionEvent.ACTION_CANCEL:

if (videoPlayer.isPlaying()){

bannerView.startLoop(false);

}else {

bannerView.startLoop(true);

}

break;

}

}

});

xml应用

android:id="@+id/banner"

android:layout_width="match_parent"

android:layout_height="200dp">

轮播适配器

public class BannerAdapter extends PagerAdapter {

private List viewList;

private int size;

private final int cacheCount = 3;

public BannerAdapter(List viewList) {

this.viewList = viewList;

size = viewList.size();

}

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

if (viewList.size() > cacheCount){

container.removeView(viewList.get(position%size));

}

}

@Override

public Object instantiateItem(ViewGroup container, int position) {

ViewGroup parent = (ViewGroup) viewList.get(position%size).getParent();

if (parent != null) {

parent.removeView(viewList.get(position%size));

}

container.addView(viewList.get(position%size));

return viewList.get(position%size);

}

@Override

public int getCount() {

return Integer.MAX_VALUE;

}

@Override

public boolean isViewFromObject(View view, Object object) {

return view == object;

}

以上所述是小编给大家介绍的android 视频图片混合轮播实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

android图片视频图片封装,详解android 视频图片混合轮播实现相关推荐

  1. android 数据文件存储,实例详解Android文件存储数据方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...

  2. IOS视频编辑功能详解下篇-视频裁剪、视频拼接、音视频的处理

    转自:http://www.hudongdong.com/ios/550.html 前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUI ...

  3. html动态轮播效果怎么做,详解JavaScript实现动态的轮播图效果

    利用javascript能实现常见的动态的网页轮播图效果,如下图1所示: 图1 实现该轮播图有以下几个要点: (1)在左右两侧各有一个箭头,分别指的是向左和向右切换,即点击相应的位置就会切换到该图片之 ...

  4. android sd卡名称,科普详解Android系统SD卡各类文件夹名称

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 15.moji:墨迹天气的缓存目录. 16.MusicFolders:poweramp产生的缓存文件夹. 17.openfeint:openfeint的缓 ...

  5. Android Log和Slog类详解--Android 12

    Log类的路径在/frameworks/base/core/java/android/util/Log.java Slog类的路径在/frameworks/base/core/java/android ...

  6. android sdk安装过程,图文详解Android 3.0 SDK安装教程

    [51CTO编者按]我们已经为喜欢Android 3.0的朋友提供Android 3.0 SDK下载,本文我们将向大家介绍Android 3.0 SDK安装教程,本教程与 玩模拟器需要比较好的电脑配置 ...

  7. android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程

    我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...

  8. android用sax解析xml,详解android使用SAX解析XML文件

    解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析. DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了. 优点:整个 ...

  9. android js接口调用方法,详解Android JS相互调用

    最近在研究Android.JS相互调用,之前没怎么接触过,只知道loadUrl()就可以加载一个网页了,研究过之后发现Android可以调JS,JS也可以调Android原生控件,很开心啊.下面小编就 ...

  10. android中样式文件步骤,详解Android主题开发的样式教程

    Android中的样式和css样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view 控件属性的集合.主题是一个包含一种或者多种格式化属性的集合,你可以将其为一个单位用在应用中 ...

最新文章

  1. 震精~python运算符还能这么玩~到底这么做到的?神级程序员解密!
  2. js之事件冒泡和事件捕获
  3. Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
  4. h5中的结构元素header、nav、article、aside、section、footer详解
  5. EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
  6. mac https本地跨域配置
  7. 如何找到字符串中的最长回文子串?
  8. windows批处理脚本导入注册表不弹出确认框
  9. 计算机操作系统第六章测试题及答案
  10. centos下压缩文件7z解压
  11. Java英语单词大全
  12. ESXI 6.7全面系统教程~win10显卡直通
  13. 自动驾驶(三十四)---------可行驶区域检测
  14. 解决viewer.js预览PDF文件 无法展示PDF水印的问题
  15. java后端研发经典面试题总结,为公司招兵买马
  16. 程序设计方法学-python
  17. 系统吞吐量、QPS、并发数、响应时间,以及提高吞吐量的思路
  18. 7-25朋友圈(C语言版)
  19. SAP中MD04中交货计划行例外信息07的分析
  20. insmod: error inserting ‘./module1.ko‘: -1 Unknown symbol in module

热门文章

  1. STL 标准容器的选择
  2. no SSL-C headers found
  3. 从模板引擎到模板引擎-使用aspx页面作为模板引擎的一种实现
  4. tomcat处理连接的详细过程
  5. C语言基础知识(期末喽)
  6. MySQL5.7 服务 crash 后无法启动
  7. centos6 系统安装 system-config-kickstart 工具
  8. CentOS 7 忘记root密码的解决之道
  9. 每周收获(11-13)
  10. GradientDrawable