Android 用ViewPager实现可自动循环的Banner图

本文介绍如何在Android中使用ViewPager实现一个自动循环的Banner图。内容包括:1)利用ViewPager显示网络下载的图片;2)实现ViewPager的无限循环滑动,通过调整ViewPager的大小或添加额外的View;3)运用ScheduledExecutorService创建定时任务实现自动滑动。示例采用第一种方法实现无限循环,并提及引导提示页和进入应用的按钮。
摘要由CSDN通过智能技术生成

Android 用ViewPager实现可自动循环的Banner图

本例子用来实现现在流行的banner展示图,主要有以下功能点:
1:用ViewPager显示图片,可以直接根据从网络上下载的图片数量动态的调整ViewPager的页数。
此处可能会用到 :网络框架Volley,和ImageLoader开源图片库或者其他图片开源库picasso等等。

2:ViewPager的左右滑动,当滑到第0张的时候,往左滑动,则滑动到第PageSize-1张。
此处有两种做法:
a:直接把ViewPager的size变成Max,一开始就把index变成*100,这样切换的时候左右都可以
b:在当前的ViewPager多加两个View,在0号前加一个View,用来显示第3个view,在3号后面再加一个 View用来显示第一个。
本例中用第一种方法实现,第二种有兴趣的也可以去实现。

3:利用一个定时任务,用到ScheduledExecutorService ,让banner图可以自动滑动。
ScheduledExecutorService接口在ExecutorService的基础上,ScheduledExecutorService提供了按时间安排执行任务的功能。
注意我们可以用TimeUnit来制定时间单位,这也是Java5.0里新的特征,5.0以前的记时单位是微秒,现在可精确到奈秒。
此处关于线程池的使用,请参考其他资料。

此例子组合了banner图的显示滑动部分,以及第一次启动程序的时候一般会有引导提示页,最后一页会有一个button进入应用。

public class TestViewPagerActivity extends Activity implements ViewPager.OnPageChangeListener{
   

    private ViewPager mViewPager;
    private LinearLayout ll_dots;
    private ImageView iv_button_enter; //在有引导图的时候,button用来进入应用 

//测试数据,填充ViewPager的图片资源,一般此图可以从网络下下载,关于ImageLoader的部分不再赘述。
    private int [] ImageIdLists = {R.drawable.guide_img_index1_nor,R.drawable.guide_img_index2_nor,
            R.drawable.guide_img_index3_nor,R.drawable.guide_img_index4_nor};

    ImageView[] ImageLists ; //填充ViewPager的ImageVIew

    private int currentItem = 0;  //当前的index
    private int pageCount;       //当前的总页数

    /**
     * 装小圆点的ImageView数组
     */
    private ImageView[] dots;   //用来显示banner图下方的提示的小圆点

    // 定时任务,用来定时切换banner图
    private ScheduledExecutorService scheduledExecutorService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //此处是全屏并制定没有title
        **getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);**

        setContentView(R.layout.activity_main);

        mViewPager = (ViewPager)findViewById(R.id.vp_banner);
        ll_dots = (LinearLayout)findViewById(R.id.dots);
        iv_button_enter = (ImageView)findViewById(R.id.iv_button_enter);
        iv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值