我的Anrdoid之旅(十二)---RollPagerView的使用方法



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

主要操作过程:

1、在gradle中导入包:


2、设置播放时间间隔、透明度、指示器(指示器可以是默认原点,数字,也可以自定义图片)


3、设置适配器,本demo中是StaticPagerAdapter,这个比较简单,用的比较多,有其他需要的可以看github源码。

主要需要设置图片、图片数量等等。


下面举个简单的应用实例:

.xml文件中:、

package com.jerehedu.jereduch10;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.flaviofaria.kenburnsview.KenBurnsView;
import com.jude.rollviewpager.OnItemClickListener;
import com.jude.rollviewpager.RollPagerView;
import com.jude.rollviewpager.adapter.StaticPagerAdapter;
import com.jude.rollviewpager.hintview.ColorPointHintView;

public class Roll_ViewActivity extends AppCompatActivity {
private RollPagerView rollPagerView;
    private KenBurnsView kenBurnsView;
    private int[] imgs={
            R.mipmap.f1,
            R.mipmap.f2,
            R.mipmap.f3,
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_roll__view);
        rollPagerView= (RollPagerView) findViewById(R.id.rool_page_view);
        kenBurnsView= (KenBurnsView) findViewById(R.id.image);
        //设置播放时间的间隔
        rollPagerView.setPlayDelay(3000);
        //设置透明度
        rollPagerView.setAnimationDurtion(500);
        //设置适配器
        rollPagerView.setAdapter(new TestNormalAdapter(imgs));
        //自定义指示图片
      // rollPagerView.setHintView(new IconHintView(this,R.mipmap.f4,R.mipmap.f1));
        //设置圆点指示器颜色
        rollPagerView.setHintView(new ColorPointHintView(this, Color.BLUE,Color.WHITE));
        //设置文字指示器
        //rollPagerView.setHintView(new TextHintView(this));
        //隐藏指示器
        //rollPagerView.setHintView(null);


        rollPagerView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(int position) {
                kenBurnsView.setImageResource(imgs[position]);

            }
        });
    }
    private class TestNormalAdapter extends StaticPagerAdapter{
       private  int[] imgs;

        public TestNormalAdapter(int[] imgs) {
            this.imgs = imgs;
        }

        @Override
        public int getCount() {
            return imgs.length;
        }

        @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;
        }
    }
}

布局文件中:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.jerehedu.jereduch10.Roll_ViewActivity">

<com.jude.rollviewpager.RollPagerView
    android:layout_width="match_parent"
    android:layout_height="180dp"
    app:rollviewpager_play_delay="5000"
    android:id="@+id/rool_page_view">
</com.jude.rollviewpager.RollPagerView>
    <com.flaviofaria.kenburnsview.KenBurnsView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/image"
        android:layout_below="@+id/rool_page_view"/>
</RelativeLayout>


运行结果如下:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值