之前在电商项目中用到广告轮播的效果,在app端实现广告图片的上传,然后轮播图片,使用handler发送消息然后在handlemessage中在发消息的循环发送可以实现广告轮播效果,但是当添加图片以后,广告轮播的速度变的不规律起来,异常的快,使用

scheduleWithFixedDelay发送消息也是如此,因此在朋友的推荐下使用第三方框架RollViewPager,摒弃安卓原生的viewpager,完美的实现了图片的匀速规律轮播效果。https://github.com/Jude95/RollViewPager



布局文件

</pre><pre style="font-family: Consolas; font-size: 14.3pt; background-color: rgb(255, 255, 255);"><pre name="code" class="html"><com.jude.rollviewpager.RollPagerViewandroid:id="@+id/roll_view_pager"android:layout_width="match_parent"android:layout_height="180dp"app:rollviewpager_play_delay="3000"/>

MainActivity

public class MainActivity extends AppCompatActivity {private RollPagerView mRollViewPager;private TestLoopAdapter mLoopAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mRollViewPager= (RollPagerView) findViewById(R.id.roll_view_pager);mRollViewPager.setPlayDelay(1000);mRollViewPager.setAdapter(mLoopAdapter = new TestLoopAdapter(mRollViewPager));mRollViewPager.setHintView(new IconHintView(this,R.drawable.point_focus,R.drawable.point_normal));}private class TestLoopAdapter extends LoopPagerAdapter{private int[] imgs = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,};private int count = imgs.length;public TestLoopAdapter(RollPagerView viewPager) {super(viewPager);}@Overridepublic View getView(ViewGroup container, int position) {ImageView view = new ImageView(container.getContext());view.setImageResource(imgs[position]);view.setScaleType(ImageView.ScaleType.CENTER_CROP);view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));return view;}@Overridepublic int getRealCount() {return count;}}private class TestNomalAdapter extends StaticPagerAdapter{private int[] imgs = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,};private int count = imgs.length;public void add(){Log.i("RollViewPager","Add");count++;if (count>imgs.length)count = imgs.length;notifyDataSetChanged();}public void minus(){Log.i("RollViewPager","Minus");count--;if (count<1)count=1;notifyDataSetChanged();}@Overridepublic View getView(ViewGroup container, int position) {ImageView view = new ImageView(container.getContext());view.setImageResource(imgs[position]);view.setScaleType(ImageView.ScaleType.CENTER_CROP);view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));return view;}@Overridepublic int getCount() {return count;}}
}
补充:在使用过程中出现了向左滑动会出现空白页面的现象,以及IllegalStateException的问题,经过尝试找到了以下解决方法:
LoopPagerAdapter中
 
 @Overridepublic void destroyItem(ViewGroup container, int position, Object object) {//container.removeView((View) object);//注掉以后就不会出现空白页面}@Overridepublic Object instantiateItem(ViewGroup container, int position) {int realPosition = position%getRealCount();View itemView = findViewByPosition(container,realPosition);<span style="color:#ff0000;"> ViewGroup p = (ViewGroup) itemView.getParent();<span style="white-space:pre">   </span>//防止出现IllegalStateException异常if (p != null) {p.removeView(itemView);}<span style="white-space:pre">          </span></span>container.addView(itemView);return itemView;}


android广告轮播图之匀速规律播放相关推荐

  1. Android广告轮播图效果实现

    效果如下: 首先看下一下布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android& ...

  2. Android弧形广告图,简单封装弧形广告轮播图(ViewPager+贝塞尔曲线)

    前言 通过ViewPager和贝塞尔曲线实现了一个弧形广告轮播图. 效果图 弧形ViewPager 实现方法 想要实现这个效果,现在几行代码就可以了: Step 1. Add it in your r ...

  3. Axure:实现跳转广告轮播图

    功能实现:当打开app时,显示app的广告轮播图  1.元件需求         三个图片.一个动态面板.三个动态模板的状态:state1.state2.state3 2.交互         将三个 ...

  4. Android 自动广告轮播图

    近来项目忙完了,觉得自己的自动广告轮播 蛮不错的 ,所以分享出来.先说说他的功能,第一能够实现自动轮播 图片 ,第二可以修改自动更换广告条的小点默认是圆形的 可以修改为小的正方向 ,同时 还可以修改 ...

  5. 【Android】轮播图图片的本地保存及读取

    #一.轮播图控件及图片加载 对于Android端的轮播图控件,我这边选用的是banner库 //轮播图 compile 'com.youth.banner:banner:1.4.9' //Glide ...

  6. Android的轮播图Banner之本地加载和网络加载图片(含demo)

    前言 关于轮播图 我个人是比较喜欢 闲来无事的时候 可以整理自己的照片 做一个demo 看看动态的效果 挺不错的! 每个App也基本都有一些广告位置 只要打开这个页面就会无限轮播广告图片 看多了我们也 ...

  7. java中广告维护轮播图怎么做_Banner广告轮播图

    需求描述 轮播图也是大部分app都有的效果,商品类跟新闻类的app是肯定会有的. 轮播图的效果跟第一次启动时的引导页类似,不过轮播图在引导页的基础上多了几个功能:在第一页也能向左滑动,在最后一页也能向 ...

  8. android github轮播图,GitHub - ZTJzzz/Banner: Android轮播图

    Android轮播图 - Banner 纵观Android古今,轮播图已然泛滥成灾!大神们各显神通大兴土木,所起楼台之高让后来者心生膜拜,纷纷Star!但不法分子也是层出不穷,为求"大神&q ...

  9. android 广告轮播图片+视频+音频

    一.近期有一个需求要实现一款定制化开发的一款广告轮播视频+图片+音频的结合,来吧接下来操作起来.因为发现Viewpager 轮播的监听总会频繁调用导致体验不太好 这边是使用RecyclerView+H ...

最新文章

  1. java正则过滤特殊字符
  2. 区块链 HyperLedger Fabric安装
  3. Leecode 260. 只出现一次的数字 III——Leecode每日一题系列
  4. Python 学习随笔1
  5. C++对象的赋值和复制
  6. 可编程模拟IC之考虑[zz]
  7. Linux 删除mysql数据库失败的解决方法
  8. Yosemite上手动增加基于POP3协议的QQ邮箱账记
  9. 【带着canvas去流浪(13)】用Three.js制作简易的MARVEL片头动画(下)
  10. Android 电子市场
  11. 如何退出企业微信?退出之后,企业微信的聊天记录还在吗?
  12. 20210726:FLAC刻录音乐CD教程04-wav格式刻录CD
  13. vs2013设置winp#cap开发环境
  14. 酸性溶液中HER动力学分析
  15. opencv获取灰度图像的像素值
  16. 用Python去优惠券,看到结果我惊呆了!
  17. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)
  18. 高新技术企业补贴如何申请?
  19. 《图解密码技术》笔记5:公钥密码-用公钥加密,用私钥解密
  20. 互联网产品都有哪些类型?

热门文章

  1. SOP,TSSOP,PLCC,BGA这些封装的中英文解释
  2. MSSQL SERVER 2005 数学函数
  3. MTM:matlab实现1
  4. 使用diskpart命令修复U盘分区
  5. 云炬随笔20211012(2)
  6. Python, CPython, Pypy, Jython的简单介绍
  7. VoxelNet: 基于点云的三维空间信息逐层次学习网络
  8. SVM熟练到精通2:SVM目标函数的dual优化推导
  9. VTK修炼之道8_三维场景基本要素:相机
  10. delphi中採用bpl共享模塊的幾點釋疑