轮播图控件

功能

  • 图片循环方式
  • 图片异步加载框架由使用者决定,避免一个应用里面有多个图片加载框架
  • 可设置图片轮播的间隔时间

1.用法

使用前,对于Android Studio的用户,可以选择添加: 在Project的build.gradle中添加:

   allprojects {
    	repositories {
    		maven { url 'https://jitpack.io' }
    	}
    }
复制代码

添加依赖:

    implementation 'com.github.zhuazhu:UIViewPager:last_version'
复制代码

2.方法

方法描述
setTranslationSpeed(int translationSpeed)图片自动平移速度,默认1000
setAutoPlay(boolean autoPlay)设置是否循环播放(如果设置为true,间隔事件不能为0)
setDelayTime(long delayTime)设置循环播放时间(循环播放时间大于0,将自动循环播放设置为true)
setInfiniteLoop(boolean infiniteLoop)是否无限循环
setImages(List images)设置图片数据源
setImageLoader(ImageLoader imageLoader)设置图片加载处理
setOnItemClickListener(OnItemClickListener listener)设置图片点击事件
setIndicatorStyle(int indicatorStyle)设置指示灯样式
start()启动轮播
destroy()销毁定时器(必须在activity,fragment,dialog销毁时调用此方法)

3.代码参考

1.实现ImageLoader接口,选择需要加载图片的第三方库(Glide,Picasso...)如下代码使用的是Glide

    public class GlideImageLoader implements ImagePagerAdapter.ImageLoader {
        @Override
        public void displayImage(ImageView imageView, String path) {
            Glide.with(imageView.getContext()).load(path).into(imageView);
        }
    }
复制代码

2.方法的实现

    private UIViewPager mViewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List<String> list = new ArrayList<>();
        for (int i=0;i<5;i++){
            list.add("http://cdn.mejust.com/uploadFiles/wisdomprom/"+
            "promPhoto/20180205/a8bfc926-eac8-45fd-a19c-4fb7c4d788de.jpg");
        }
        mViewPager = findViewById(R.id.pager);
        mViewPager.getLayoutParams().height = (int) ((screenWidth()) / 2.5d);
        mViewPager.setImages(list);// 设置数据源
        mViewPager.setDelayTime(4000);//设置轮播间隔时间
        mViewPager.setInfiniteLoop(true);//设置是否无线循环
        mViewPager.setTranslationSpeed(2000);//设置平移过度时间
        mViewPager.setImageLoader(mViewPager.setImageLoader(new GlideImageLoader()););
        mViewPager.start();
    }
复制代码

3.设置指示灯样式代码如下:

------圆形图标:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="true">
            <shape
                android:shape="oval">
                <size android:width="7dp" android:height="7dp"/>
                <solid android:color="@color/c_fff"/>
                <stroke android:width="0.5dp" android:color="@color/c_14000000"/>
            </shape>
        </item>
        <item android:state_enabled="false">
            <shape
                android:shape="oval">
                <size android:width="7dp" android:height="7dp"/>
                <solid android:color="@color/c_4d000000"/>
            </shape>
        </item>
    </selector>
复制代码

------长方形图标:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="true">
            <shape android:shape="rectangle">
                <size android:height="4dp" android:width="20dp"/>
                <solid android:color="@color/c_fff"/>
                <corners android:radius="1dp"/>
            </shape>
        </item>
        <item android:state_enabled="false">
            <shape android:shape="rectangle">
                <size android:height="4dp" android:width="10dp"/>
                <solid android:color="@color/c_000"/>
                <corners android:radius="1dp"/>
            </shape>
        </item>
    </selector>
复制代码

4.在在activity,fragment,dialog销毁时调用destroy()方法,Activity中代码如下

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mViewPager.destroy();
    }
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值