ViewPager设置广告位,无限滚动

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {

    private ViewPager viewpager_1;
    private LinearLayout dian_ll;
    private List<ImageView> dianList =new ArrayList<ImageView>();
    private int currentPosition = 0;//当前的位置
    private final static int AD_START_PLAY=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewpager_1= (ViewPager) findViewById(R.id.viewpager_1);
        dian_ll= (LinearLayout) findViewById(R.id.dian_ll);
        viewpager_1.setAdapter(new adapter());
        handler.removeMessages(AD_START_PLAY);//清空
        handler.sendEmptyMessageDelayed(AD_START_PLAY, 3000);//执行3秒滚动
        viewpager_1.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {//手动滑动广告
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if (currentPosition !=position){
                    dianList.get(position).setImageDrawable(getResources().getDrawable(R.mipmap.page_indicator));
                    dianList.get(currentPosition).setImageDrawable(getResources().getDrawable(R.mipmap.page_indicator_focused));
                    currentPosition =position;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        setDian(dian_ll,4);
    }
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case AD_START_PLAY:
                    int currentItem = viewpager_1.getCurrentItem(); //获取当前页
                    int totalCount = viewpager_1.getAdapter().getCount();//全部的页数
                    if (currentItem + 1 >= totalCount) {
                        viewpager_1.setCurrentItem(0, true);//设置当前页
                    } else {
                        viewpager_1.setCurrentItem(currentItem + 1, true);
                    }
                    handler.sendEmptyMessageDelayed(AD_START_PLAY, 3000);
                    break;
            }
        }
    };
    private void setDian(LinearLayout fragment_course_adDots,int num){
        fragment_course_adDots.removeAllViews();
        for (int i=0;i<num;i++){
            ImageView imageView=new ImageView(MainActivity.this);
            imageView.setLayoutParams(new ViewGroup.LayoutParams( ViewPager.LayoutParams.WRAP_CONTENT,ViewPager.LayoutParams.WRAP_CONTENT));
            dianList.add(imageView);
            if (i==0){
                dianList.get(i).setImageDrawable(getResources().getDrawable(R.mipmap.page_indicator));
            }else {
                dianList.get(i).setImageDrawable(getResources().getDrawable(R.mipmap.page_indicator_focused));
            }
            fragment_course_adDots.addView(dianList.get(i));
        }

    }
    private class adapter extends PagerAdapter {

        @Override
        public int getCount() {
            return 4;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;//要赋值否则图片无法显示
        }
        //赋值图片
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView=new ImageView(getBaseContext());
            imageView.setImageResource(R.mipmap.ic_launcher);
            container.addView(imageView);
            return imageView;
        }
            //要销毁否则报错(Required method destroyItem was not overridden)
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }

}

下载地址:
http://download.csdn.net/detail/u011531708/9702208

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值