Android 视频图片 轮播,详解android 视频图片混合轮播实现
循环添加视频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 视频图片混合轮播实现相关推荐
- android 数据文件存储,实例详解Android文件存储数据方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...
- android sd卡名称,科普详解Android系统SD卡各类文件夹名称
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 15.moji:墨迹天气的缓存目录. 16.MusicFolders:poweramp产生的缓存文件夹. 17.openfeint:openfeint的缓 ...
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
[51CTO编者按]我们已经为喜欢Android 3.0的朋友提供Android 3.0 SDK下载,本文我们将向大家介绍Android 3.0 SDK安装教程,本教程与 玩模拟器需要比较好的电脑配置 ...
- android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
- android用sax解析xml,详解android使用SAX解析XML文件
解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析. DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了. 优点:整个 ...
- android js接口调用方法,详解Android JS相互调用
最近在研究Android.JS相互调用,之前没怎么接触过,只知道loadUrl()就可以加载一个网页了,研究过之后发现Android可以调JS,JS也可以调Android原生控件,很开心啊.下面小编就 ...
- android中样式文件步骤,详解Android主题开发的样式教程
Android中的样式和css样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view 控件属性的集合.主题是一个包含一种或者多种格式化属性的集合,你可以将其为一个单位用在应用中 ...
- android notification的使用方法,详解Android中Notification的使用方法
在消息通知的时候,我们经常用到两个控件Notification和Toast.特别是重要的和需要长时间显示的信息,用Notification最合适不过了.他可以在顶部显示一个图标以标示有了新的通知,当我 ...
- Android Log和Slog类详解--Android 12
Log类的路径在/frameworks/base/core/java/android/util/Log.java Slog类的路径在/frameworks/base/core/java/android ...
最新文章
- 安装ATi显卡驱动后增加的鼠标右键菜单的清理
- 打造新型智慧城市标杆 金华跻身中国城市信息化50强
- [置顶] 我整理的一些常用网址
- 高并发软件设计的几种方式
- 开发你的第一个LYNC应用-第二部分
- div+css 和 xhtml+css是一回事么?
- 多线程——线程的生命周期
- vba动态二维数组_VBA实战技巧05: 动态调整数组以存储所需数据
- 前端学习(1168):构造函数方法(转换为真正数组)
- oracle监听程序无法分配,Oracle监听器服务不能启动的解决方法
- 查看代码 index.html,Javascript查看大图功能代码实现
- PHP设计模式——装饰器模式
- 虚拟内存和swap分区的关系
- 通过KGDB进行双机内核调试
- 妙用PRN文件,实现文档换机打印
- 好用的局域网共享工具
- linux系统看实际内存剩余,linux怎么看内存剩余
- 从0到1构建一个电商平台 – 开发篇(转)
- Nginx-浅析(转)
- linux系统fasta程序,Linux生信练习2--fastq/fasta