文档章节

Android简单实现轮播

AmosWang
 AmosWang
发布于 2017/04/27 22:31
字数 260
阅读 50
收藏 0

先上效果图

一、build.gradle(Module:app)添加依赖

compile 'com.jude:rollviewpager:1.4.6'

二、XML中添加布局(总布局最上边加上xmlns:app…… )

xmlns:app="http://schemas.android.com/apk/res-auto"
<com.jude.rollviewpager.RollPagerView
    android:id="@+id/vp_roll"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    app:rollviewpager_play_delay="3000" />

app:rollviewpager_play_delay="3000"也就是设置3000ms图片自动滚动一次

三、在Activity.java中findViewById

RollPagerView vp_roll = (RollPagerView) findViewById(R.id.vp_roll);

四、创建自定义适配器

public class LoopAdapter_Scroll extends LoopPagerAdapter {

    List<Integer> imgList;

    public LoopAdapter_Scroll(RollPagerView viewPager, List<Integer> imgList) {
        super(viewPager);
        this.imgList = imgList;
    }

    @Override
    public View getView(ViewGroup container, int position) {
        ImageView view = new ImageView(container.getContext());
        view.setImageResource(imgList.get(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 imgList.size();
    }

}

五、给RollPagerView关联适配器

List<Integer> imgList = new ArrayList<>();
imgList.add(R.mipmap.bg_topic_1);
imgList.add(R.mipmap.bg_topic_2);
imgList.add(R.mipmap.bg_topic_3);
imgList.add(R.mipmap.bg_topic_4);
imgList.add(R.mipmap.bg_topic_5);

vp_roll.setAdapter(new LoopAdapter_Scroll(vp_roll, imgList));

六、设置点击事件(position + 1 是为了符合大众的 1,而不是程序员的 1,哈哈)

vp_roll.setOnItemClickListener(new com.jude.rollviewpager.OnItemClickListener() {
    @Override
    public void onItemClick(int position) {
        Toast.makeText(getBaseContext(), "点击轮播第" + (position + 1) + "张页面",
                       Toast.LENGTH_SHORT).show();     
    }
});

图片轮播实现了,感谢依赖的制作者。

© 著作权归作者所有

共有 人打赏支持
AmosWang

AmosWang

粉丝 5
博文 65
码字总数 30051
作品 0
宝山
后端工程师
私信 提问
android上如何实现gif+jpg 混播的轮播功能

android上如何实现gif+jpg 混播的轮播功能 android 原生能实现么?如果通过html或者jquery 能实现么 请大神指点下

柠檬lemonfight
2016/06/20
126
1
自定义广告图片轮播View——CarouselView

  因为一个广告机的需求,需要做一个广告轮播的效果,不需要什么特别的动画,正常的轮播就可以了。笔者看了网上很多文章,要么不好用,要么就是效果太多,太复杂,用不上。索性自己写了一个...

饮水思源为名
08/08
0
0
打造万能的BannerView(ViewPager)无限轮播图

为什么写这篇文章,因为在网上看到的绝大多数BannerView实现了右无限轮播图,甚至没有实现无限轮播图,说成是无限轮播图,实现了左右无限轮播图的,并没有做性能上的优化。 先看张效果图 工程...

Steven_520
05/11
0
0
Animation-list实现逐帧动画

我们经常有些需求需要用到轮播的逐帧动画,可以用线程实现,当然android系统为我们提供了更简约简单的实现手段——Animation-list。 首先下面是一段XML,你可以新建一个XML存放在项目的res/d...

兜来兜去
2013/04/15
0
0
最近排查android webview https的发热耗电和加载速度慢问题解决

最近排查android webview https的发热耗电和加载速度慢问题 问题:H5页面发热耗电 排查:通过android studio profiler 查看CPU消耗曲线,发现静置情况下webview轮播图波浪式消耗CPU,且峰值高...

ljianbing
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

eslint rules 规则

'rules': { "comma-dangle": ["error", "never"], //是否允许对象中出现结尾逗号 "no-cond-assign": 2, //条件语句的条件中不允许出现赋值运算符 "no-console": 2, //不允许出现console语句 ...

agenyun
24分钟前
1
0
类型判断时instanceof和equals的不同用法

接口设计时为了避免序列化的麻烦,将接口定义为参数为map<String,String>类型的接口,但是现在调用时需要转换当前的实体Bean为Map,接口接收方再把Map转换为另一个Bean实体。过程中的需要对类...

wangtx
30分钟前
1
0
vue 组件间传值(个人精编)

1.父组件向子组件传值 1⃣️.子组件标签绑定需要传递的参数名2⃣️.子组件页面使用props 接收参数 2.子组件向父组件传值  1⃣️.子组件使用$emit来触发一个自定义事件,并传递一个参...

MrBoyce
40分钟前
1
0
(荷兰)彼得·冯·门施著:博物馆学研究的目的

博物馆学研究的目的 (荷)彼得·冯·门施 尽管诸多关于博物馆学认知目的的不同看法可以被归纳为数个主要群体,但没有一个群体可以被称为“学派”。一般来说,学派是由于博物馆学研究目的的不...

乔老哥
50分钟前
2
0
Vue slot的用法

之前看官方文档,由于自己理解的偏差,不知道slot是干嘛的,看到小标题,使用Slot分发内容,就以为 是要往下派发内容。然后就没有理解插槽的概念。其实说白了,使用slot就是先圈一块地,将来...

peakedness丶
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部