iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >RollViewPager如何实现图片轮播效果
  • 243
分享到

RollViewPager如何实现图片轮播效果

rollviewpager 2023-05-30 18:05:56 243人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关RollViewPager如何实现图片轮播效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。RollViewPager是一个自动轮播的Viewpager,支持无限循环。 触摸时

这篇文章将为大家详细讲解有关RollViewPager如何实现图片轮播效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

RollViewPager是一个自动轮播的Viewpager,支持无限循环。 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放。 看起来就像这样。指示器可以为点可以为数字还可以自定义,位置也可以变。

附上RollViewPager GitHub地址:https://github.com/Jude95/RollViewPager

使用Android Studio开发在gradle添加依赖:

compile 'com.jude:rollviewpager:1.4.5'

在布局文件当中使用:

<com.jude.rollviewpager.RollPagerView  android:layout_width="match_parent"  android:layout_height="180dp"  app:rollviewpager_play_delay="3000"/>

要使用到RollViewPager自定义属性的时候,在布局文件当中我们必须添加:

xmlns:app="Http://schemas.android.com/apk/res-auto

RollPagerView自定义属性:

app:rollviewpager_play_delay="3000" 播放间隔时间,单位ms。填0则不播放。默认为0 app:rollviewpager_hint_gravity="center" 指示器位置,提供left,center,right。默认center
app:rollviewpager_hint_color="#7c7c7c" 指示器背景颜色.默认黑色
app:rollviewpager_hint_alpha="80" 指示器背景透明度。0全透明,255不透明。默认0.
app:rollviewpager_hint_paddingLeft="16dp" 指示器左边距
app:rollviewpager_hint_paddingRight="16dp" 指示器右边距
app:rollviewpager_hint_paddingTop="16dp" 指示器上边距
app:rollviewpager_hint_paddingBottom="16dp" 指示器下边距

一般指定一下间隔时间。

RollViewPager提供了自定义指示器的类:HintView 用法

参数说明:上下文,当前轮播图指示器图片 默认指示器图片
mRollViewPager.setHintView(new IconHintView(this,R.drawable.point_focus,R.drawable.point_nORMal));
mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW,Color.WHITE));
mRollViewPager.setHintView(new TextHintView(this));
mRollViewPager.setHintView(null);//隐藏指示器

设置点击事件:

pagerView.setOnItemClickListener(new OnItemClickListener() {      @Override      public void onItemClick(int position) {        Toast.makeText(MainActivity.this,""+position,Toast.LENGTH_SHORT).show();      }    });

提供以下三种种方便的PagerAdapter供使用。

本ViewPager也可以使用其他任意PagerAdapter。

StaticPagerAdapter:

存储页面的Adapter。view添加进去就存储不会再次getView,减少页面创建消耗,消耗内存。一般自动播放的情况这种方案比较好。不然会大量构造View。 概念参照FragmentPagerAdapter。可以用于其他ViewPager。

class MyPagerAdapter extends StaticPagerAdapter {    private int[] image = {R.mipmap.one, R.mipmap.two, R.mipmap.three, R.mipmap.four};    // SetScaleType(ImageView.ScaleType.CENTER_CROP);    // 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)    @Override    public View getView(ViewGroup container, int position) {      ImageView imageView = new ImageView(container.getContext());      imageView.setImageResource(image[position]);      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);      imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));      return imageView;    }    @Override    public int getCount() {      return image.length;    }  }

DynamicPagerAdapter (跟以上Adapter用法一样)
动态的Adapter。当创建3号view时会销毁1号view(递推),会时常调用getView。增加页面创建消耗,减小内存消耗。 概念参照FragmentStatePagerAdapter。可以用于其他ViewPager。

LoopPagerAdapter

无限循环的Adapter。无限循环上采用的是getCount返回int大数的方法(并没有什么缺点,另外估计1s的间隔时间你在有生之年看不到他播放到底)。实测比第N页跳转到第1页的效果好。

数据采用StaticPagerAdapter的方案。节省创建View开销。 本Adapter只能用于本RollViewPager;

无需其他设置,很简单。

mRollViewPager.setAdapter(new TestLoopAdapter(mRollViewPager));private class TestLoopAdapter extends LoopPagerAdapter{  private int[] imgs = {      R.drawable.img1,      R.drawable.img2,      R.drawable.img3,      R.drawable.img4,  };  public TestLoopAdapter(RollPagerView viewPager) {    super(viewPager);  }  @Override  public 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;  }  @Override  public int getRealCount() {    return imgs.length;  }}

播放控制

rollViewPager.pause()rollViewPager.resume()rollViewPager.isPlaying()

MainActivity代码:

public class MainActivity extends AppCompatActivity {  private RollPagerView pagerView;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    pagerView = (RollPagerView) findViewById(R.id.rollPagerView);    //设置适配器    pagerView.setAdapter(new MyPagerAdapter());    pagerView.setOnItemClickListener(new OnItemClickListener() {      @Override      public void onItemClick(int position) {        Toast.makeText(MainActivity.this,""+position,Toast.LENGTH_SHORT).show();      }    });    //对指示器的自定义 参数说明:上下文,当前轮播图指示器图片 默认指示器图片//    pagerView.setHintView(new IconHintView(this,R.mipmap.ic_launcher,R.mipmap.fouse));  }  class MyPagerAdapter extends StaticPagerAdapter {    private int[] image = {R.mipmap.one, R.mipmap.two, R.mipmap.three, R.mipmap.four};    // SetScaleType(ImageView.ScaleType.CENTER_CROP);    // 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)    @Override    public View getView(ViewGroup container, int position) {      ImageView imageView = new ImageView(container.getContext());      imageView.setImageResource(image[position]);      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);      imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));      return imageView;    }    @Override    public int getCount() {      return image.length;    }  }}

xml代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  android:layout_width="match_parent"  android:layout_height="match_parent">  <!--rollviewpager_play_delay 播放时间间隔默认为0-->  <com.jude.rollviewpager.RollPagerView    android:layout_width="match_parent"    android:layout_height="150dp"    android:id="@+id/rollPagerView"    app:rollviewpager_play_delay="3000"    >  </com.jude.rollviewpager.RollPagerView></RelativeLayout>

附上效果图:

RollViewPager如何实现图片轮播效果

关于“RollViewPager如何实现图片轮播效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: RollViewPager如何实现图片轮播效果

本文链接: https://www.lsjlt.com/news/220429.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • RollViewPager如何实现图片轮播效果
    这篇文章将为大家详细讲解有关RollViewPager如何实现图片轮播效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。RollViewPager是一个自动轮播的Viewpager,支持无限循环。 触摸时...
    99+
    2023-05-30
    rollviewpager
  • Bootstrap中如何实现图片轮播效果
    这篇文章主要为大家展示了“Bootstrap中如何实现图片轮播效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Bootstrap中如何实现图片轮播效果”这篇文...
    99+
    2024-04-02
  • JavaScript如何实现首页图片轮播图效果
    这篇文章主要介绍“JavaScript如何实现首页图片轮播图效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现首页图片轮播图效果”文章能帮助大家解决问题。一、轮番图效果展...
    99+
    2023-07-02
  • 如何使用JQuery实现图片轮播效果
    这篇文章主要介绍了如何使用JQuery实现图片轮播效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。【效果如图】【原理简述】这里大概说一下整...
    99+
    2024-04-02
  • Android使用RollViewPager实现轮播图
    记录Android中轮播图的学习与使用,供大家参考,具体内容如下 1、build.gradle(:app)文件里面加依赖 implementation 'com.jude:ro...
    99+
    2024-04-02
  • jquery如何实现图片自动轮播效果
    这篇文章主要介绍“jquery如何实现图片自动轮播效果”,在日常操作中,相信很多人在jquery如何实现图片自动轮播效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery如何实现图片自动轮播效果”的疑...
    99+
    2023-06-29
  • javascript实现图片轮播简单效果
    本文实例为大家分享了javascript实现图片轮播简单效果的具体代码,供大家参考,具体内容如下 这里是css样式  * {      margin: 0;  padding...
    99+
    2024-04-02
  • JS实现简单图片轮播效果
    本文实例为大家分享了JS实现简单图片轮播效果的具体代码,供大家参考,具体内容如下 实现效果 左右按钮可点击左右移动显示图片进行无缝滚动 下面的小圆圈点击可跳到对应...
    99+
    2024-04-02
  • js+css实现卡片轮播图效果
    本文实例为大家分享了js+css实现卡片轮播图效果的具体代码,供大家参考,具体内容如下 实现点击的时候切换卡片,自动轮播,鼠标移入暂停,移出继续轮播,有动画事件效果就是这样 下面是...
    99+
    2024-04-02
  • JavaScript实现首页图片轮播图效果
    目录一、轮番图二、源码展示设置body样式设置实现轮番一、轮番图 效果展示: 轮播图是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模...
    99+
    2024-04-02
  • Vue封装Swiper如何实现图片轮播效果
    小编给大家分享一下Vue封装Swiper如何实现图片轮播效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!图片轮播是前端中经常需...
    99+
    2024-04-02
  • css如何实现轮播图效果
    本文小编为大家详细介绍“css如何实现轮播图效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css如何实现轮播图效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。准备了3张大小相同的图片,将图片的文件名命名为...
    99+
    2023-07-04
  • 使用jQuery实现图片轮播效果
    jQuery是对JavaScript的简化,语法没有太大区别,比较JavaScript更加容易理解,代码量更少。 用jQuery实现图片轮播需要有以下步骤: ​ 1.对图片区域获取,...
    99+
    2024-04-02
  • js实现图片轮播切换效果
    最近在b站上学习的时候,学到了一个用原生js实现图片轮播切换效果的实战,码下来收藏 上图是这个小实战的效果图,整个小实战所实现的功能是图片自动轮播切换、点击上下键图片切换上下图片、...
    99+
    2024-04-02
  • jquery实现图片自动轮播效果
    本文实例为大家分享了jquery实现图片自动轮播效果的具体代码,供大家参考,具体内容如下 HTML代码如下: <div id="container">         ...
    99+
    2024-04-02
  • Swiper如何实现轮播图效果
    小编给大家分享一下Swiper如何实现轮播图效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下<!DOCTYP...
    99+
    2024-04-02
  • React如何实现轮播图效果
    这篇文章主要介绍“React如何实现轮播图效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React如何实现轮播图效果”文章能帮助大家解决问题。效果:轮播功能用到了react-slick组件,安装...
    99+
    2023-07-02
  • android如何实现banner轮播图无限轮播效果
    小编给大家分享一下android如何实现banner轮播图无限轮播效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下效果展示第一步(权限配置)<uses-permission android:n...
    99+
    2023-05-30
    android banner
  • js如何实现图片轮播特效
    这篇文章将为大家详细讲解有关js如何实现图片轮播特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先看一眼效果图:代码:<html> <head>...
    99+
    2024-04-02
  • 如何使用jQuery实现圆点图片轮播效果
    这篇文章将为大家详细讲解有关如何使用jQuery实现圆点图片轮播效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图片轮播效果 :在页面的指定位置实现的图片自动的左右轮流...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作