Android轮播图 banner,图片视频混播banner

1、使用Android循环滚动控件——ViewFlipper实现方法:https://blog.csdn.net/meixi_android/article/details/84615857

2、使用第三方module实现方法:

需要引入的module下载链接:https://pan.baidu.com/s/1sdlQefBTfkLsNO__ouwz8w

添加module方法步骤:

(1)File----->New------>Import Module找到下载的banner文件

(2)app的build.gradle下的dependencies下添加

compile project(':banner')

 

 2、2依赖引入方法

//广告图
implementation 'com.youth.banner:banner:1.4.10'
xmlns:app="http://schemas.android.com/apk/res-auto"
<com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="500pt"app:image_scale_type="fit_xy"app:delay_time="5000"app:indicator_height="11pt"app:indicator_width="11pt" />

图片加载工具方法:

public class GlideImageLoader extends ImageLoader {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(context).load(path).error(context.getResources().getDrawable(R.mipmap.img_banner)).apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.ALL)).into(imageView);}
}
mBanner.setImageLoader(new GlideImageLoader());
mBanner.setBannerAnimation(Transformer.Accordion);
mBanner.setOnBannerListener(this);
private List<String> strings;
strings =  Arrays.asList(dataBean.getImgs().split(","));mBanner.setImages(strings);
mBanner.start();

 

 

如:

dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23+'compile 'com.android.support:recyclerview-v7:23+'compile "com.github.bumptech.glide:glide:3.7.0"compile 'com.facebook.fresco:fresco:0.12.0'compile 'com.zxy.android:recovery:0.0.8'compile project(':banner')
//    compile 'com.youth.banner:banner:+'
}

(3)settings.gradle下添加‘banner’

include ':app',':banner'

 

.

2、activity调用banner    Module

(1)实现接口

public class MainActivity extends AppCompatActivity implements  OnBannerListener {

 

(2)实现数据添加

banner.setIndicatorGravity(BannerConfig.LEFT);//指示器位置左中右
banner.updateBannerStyle(BannerConfig.NUM_INDICATOR);//标题显示与否,指示器显示与否//简单使用
banner.setImages(App.images)//图片.setBannerTitles(App.titles)//标题.setImageLoader(new GlideImageLoader()).setOnBannerListener(this).start();

 

(3)接口方法

@Override
public void OnBannerClick(int position) {//item图片点击Toast.makeText(getApplicationContext(),"你点击了:"+position,Toast.LENGTH_SHORT).show();
}

 

 

2、视频图片混播banner

implementation 'com.lakehubo:hbanner:1.0.8'

 

<com.lake.banner.HBannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent" />

 

private HBanner banner;

 

    private void init() {banner.setBannerAnimation(Transformer.Default)//换场方式.setBannerStyle(BannerStyle.CIRCLE_INDICATOR_TITLE)//指示器模式.setCache(true)//可以不用设置,默认为true.setCachePath(getExternalFilesDir(Environment.DIRECTORY_MOVIES).getAbsolutePath() + File.separator + "hbanner").setVideoGravity(VideoGravityType.FULL_SCREEN)//视频布局方式.setImageGravity(ImageGravityType.FIT_XY)//图片布局方式.setPageBackgroundColor(Color.TRANSPARENT)//设置背景.setShowTitle(false)//是否显示标题.setViewPagerIsScroll(true)//是否支持手滑.start();List<ViewItemBean> list2 = new ArrayList<>();Uri path1 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.default1);
//                Uri path2 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.default2);String path2 = "http://gzlxcdg.app.xiaozhuschool.com/public/uploads/video/20200504/fa530b8ae53f8d2e7698ea0fb22d22d5.mp4";list2.add(new ViewItemBean(VIDEO, "标题1", path1, 15 * 1000));list2.add(new ViewItemBean(VIDEO, "标题2", path2, 18 * 1000));list2.add(new ViewItemBean(IMAGE, "标题3", R.mipmap.b2, 2 * 1000));banner.update(list2);}

 

图文混播banner方法二 

依赖

//glide
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图文混播
implementation 'com.github.licheedev:AdPlayer:1.0.2'
<com.licheedev.adplayer.AdViewandroid:id="@+id/ad"android:layout_width="match_parent"android:layout_height="300dp"android:background="#000000"app:ad_background_color="#000000"app:ad_enable_image_anim="true"app:ad_enable_video_anim="true"app:ad_image_scale_type="fitXY"android:layout_below="@+id/banner"android:isScrollContainer="true"app:ad_video_aspect_ratio="ratio_match_parent" />

 

AdView ad;private AdPlayer<AdData> mAdPlayer;

 

ad = (AdView) findViewById(R.id.ad);
mAdPlayer = new AdPlayer<>(ad);

 

String urlll = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/imgs/20200306/b23d77407c27feb9ffdc578158784589.png";
String vds = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/video/20200504/fa530b8ae53f8d2e7698ea0fb22d22d5.mp4";
String vds2 = "https://gzlxcdg.https.xiaozhuschool.com/public/uploads/imgs/20200411/6329153ceb93a706fe62abdec9cbbe57.jpeg";
List<String> urls = new ArrayList<>();
urls.add(urlll);
urls.add(vds);
urls.add(vds2);
mAdPlayer.setNewData(UrlAdData.convert(urls));

 

@Override
public void onResume() {super.onResume();mAdPlayer.resume();
}@Override
public void onPause() {super.onPause();mAdPlayer.pause();
}@Override
public void onDestroy() {mAdPlayer.release();super.onDestroy();
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 实现 drop table if exists

使用如下代码进行替换&#xff1a; BEGINEXECUTE IMMEDIATE DROP TABLE this_table; EXCEPTIONWHEN OTHERS THENNULL; END;

Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item

1、添加recycleview依赖 compile(com.android.support:recyclerview-v7:25.1.1) {force true } 2、item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xm…

cesium billboard 点击 不想显示infobox

cesium的一些实体默认点击&#xff0c;会弹出infobox。 如果不想弹出&#xff0c; 初始化的时候加上参数infoBox: false。 不想显示选中&#xff0c; 初始化的时候加上参数selectionIndicator: false。 示例&#xff1a; var viewer new Cesium.Viewer(cesiumContainer,…

工作168:代码中的删除逻辑处理

1首先找到对应方法里面的删除方法 2点击之后进行删除操作 在当前方法里面直接进行混入删除 删除结束

java如何对List集合中的元素进行排序(请收藏)

在java开发中有时候我们需要对List集合中的元素按照一定的规则进行排序&#xff0c;比如说有个Person的集合&#xff0c;我们要根据Person的age属性进行排序输出&#xff0c;这就需要用到Java中提供的对集合进行操作的工具类Collections&#xff0c;其中的sort方法&#xff0c;…

cesium面板动态显示并跟随移动

我的需求&#xff0c;首先显示一个billboard&#xff0c;点击billboard后&#xff0c;在旁边显示一个div面板&#xff0c;并且该面板随着地图拖拽也能进行相对运动。 概要实现步骤&#xff1a; 1、自定义div面板&#xff0c;面板需要设置id值 2、使用我自己定义的函数&#…

工作169:删除操作

this.$confirm(你正在进行删除操作, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning}).then(()>{deleteAction(path.join(this.url.delete, record.id))this.$message.success(res.msg);}).catch((err)>{this.$message.warning(err);})

Android 设置view透明度,广告标题透明背景

android:alpha"0.8" <ImageViewandroid:layout_width"match_parent"android:layout_height"match_parent"android:alpha"0.8"android:background"drawable/bantouheibg"/> colors<!-- 透明色 --> <color na…

bootstrapselect使用 Bootstrap's dropdowns require Popper.js

虽然我目前喜欢用vue&#xff0c;但是有一些项目会用bootstrap进行配合。 下面介绍一款bootstrap生态链的插件&#xff1a;bootstrapselect。 官网地址&#xff1a;https://www.bootstrapselect.cn/ 特别要注意一点&#xff0c;引入bootstrapselect前要先引入popper.js。 由…

Android recycleview实现混合itemview,以及recycleview添加头部尾部

需要引入的module链接&#xff1a;https://pan.baidu.com/s/1kcVye2vT4M0mdCtzYpUVKw 添加module方法步骤&#xff1a;https://blog.csdn.net/meixi_android/article/details/84655666 1、主要adapter /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;131647168401…

工作170:删除做个判断操作 成功删除 取消取消

this.$confirm(你正在进行删除操作, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning}).then((res)>{deleteAction(path.join(this.url.delete, record.id))this.$message.success(res);}).catch((err)>{this.$message.warning(err);})

docker 报错 Container is not running

我在运行docker exec -it 56b90db5253e /bin/bash报错。 出现这个问题&#xff0c;是因为Container容器之前已经启动过了 需要执行docker start 56b90db5253e就可以解决了。

Android侧滑删除-RecyclerView轻松实现高效的侧滑菜单

1 删除整个RecyclerView hisList.clear(); hisAdapter.notifyDataSetChanged(); mScanListAdapter.setNewData(null); 刚开始只是使用了list.clear() 方法就是没有效果&#xff0c;最后想起来了忘记了notifyDataSetChanged 刷新了 2 RecyclerView 删除Item hisList.remov…

返回数组中的最大数 -freeCodeCamp

找出多个数组中的最大数 右边大数组中包含了4个小数组&#xff0c;分别找到每个小数组中的最大值&#xff0c;然后把它们串联起来&#xff0c;形成一个新数组。 给出的数组如下&#xff1a; largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 85…

前端学习(2645):懂代码之header表头页之未读消息

<!-- 消息中心 --><div class"btn-bell"><el-tooltipeffect"dark":content"message?有${message}条未读消息:消息中心"placement"bottom"><router-link to"/tabs"><i class"el-icon-bell&…

cesium事件简单全面描述

我在开发中&#xff0c;需要一个功能&#xff0c;时时获取经纬度和相机角度。需要对cesium中对事件实现监听。 cesium事件主要几大类类型&#xff1a; 1、鼠标事件&#xff1a;ScreenSpaceEventType 2、键盘事件&#xff1a;KeyboardEventModifier 3、相机事件&#xff1a;Ca…

HTML标签总结

一、文字1.标题文字 <h#>..........</h#> #1~6&#xff1b;h1为最大字&#xff0c;h6为最小字2.字体变化 <font>..........</font> 【1】字体大小 <font size#>..........</font> #1~7&#xff1b;数字愈大字也愈大 【2】指定字型 <fon…

Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件

mainactivity返回桌面代码&#xff1a; activity下添加如下代码即可: Override public void onBackPressed() {Intent home new Intent(Intent.ACTION_MAIN);home.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);home.addCategory(Intent.CATEGORY_HOME);startActivity(home);} …

js cesium 中弧度、角度转化

参考如下代码&#xff1a; const { heading, pitch, roll } viewer.camera; console.log({ heading, pitch, roll }); // 弧度 const radians Cesium.Math.toRadians(heading) console.log(radians) // 角度 const degrees radians * (180 / Math.PI); console.log(degrees…