强大的Viewpager轮播实现

本文介绍了一种使用ConvenientBanner库实现的简单ViewPager无限轮播方法,并附带强大的动画效果。通过具体的代码示例展示了如何配置依赖、设置布局、初始化Activity及自定义适配器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文中你可以学到非常简单的 viewpager 无限轮播,并且自带强大的动画效果

1*  build.gradle  ----  dependencies  ----   compile 'com.bigkoo:convenientbanner:1.1.4'


//layout

<com.bigkoo.convenientbanner.ConvenientBanner
        android:layout_width="match_parent"
        android:id="@+id/viewpager"
        android:layout_height="200dp">
    </com.bigkoo.convenientbanner.ConvenientBanner>


//activity
package com.example.liangshaoteng.cbviewholdercreator;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import com.bigkoo.convenientbanner.CBPageAdapter;
import com.bigkoo.convenientbanner.CBViewHolderCreator;
import com.bigkoo.convenientbanner.ConvenientBanner;
import com.bigkoo.convenientbanner.OnItemClickListener;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements OnItemClickListener {

    private ArrayList<Integer> data=new ArrayList<>();
    private ConvenientBanner convenientbanner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initview();

    }

    private void initview() {

        data.add(R.drawable.q1);
        data.add(R.drawable.q2);
        data.add(R.drawable.q3);
        data.add(R.drawable.q4);
        data.add(R.drawable.q5);
        data.add(R.drawable.q6);

        convenientbanner = (ConvenientBanner) findViewById(R.id.viewpager);

        convenientbanner.setPages(new CBViewHolderCreator() {
            @Override
            public Object createHolder() {
                return new NetworkImageHolderView();
            }<span style="white-space:pre">							</span>//动画的切换
        },data).setPageTransformer(ConvenientBanner.Transformer.AccordionTransformer).startTurning(2000)
                .setPageIndicator(new int[]{R.drawable.shar,R.drawable.shar2})
                .setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(int position) {

    }


    public class NetworkImageHolderView implements CBPageAdapter.Holder<Integer> {

        ImageView imageView;

        @Override
        public View createView(Context context) {
            imageView = new ImageView(context);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            return imageView;
        }

        @Override
        public void UpdateUI(Context context, int position, Integer data) {

            imageView.setImageResource(data);

        }
    }
}

//小圆点

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval" >

        <solid android:color="#f00" />
        <stroke android:width="1dp" android:color="#0f0"/>

        <size android:width="5dp" android:height="5dp"/>
    </shape>
</item>
</selector>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <size android:width="5dp" android:height="5dp" />
        <solid android:color="#ccc" />
        <corners android:radius="9dp" />
        <stroke android:width="1dp" android:color="#0f0" />
    </shape>
    </item>
</selector>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值