ViewPager

package com.k1.description;

import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;

public class WelcomeActivity extends BaseActivity {

    private static final int[] PAGERS = new int[] { R.layout.activity_welcome_pager1, R.layout.activity_welcome_pager4,
            R.layout.activity_welcome_pager1, R.layout.activity_welcome_pager4, R.layout.activity_welcome_pager1 };

    private ViewGroup mPoints;
    private int mLast = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        mPoints = (ViewGroup) findViewById(R.id.points);//滑动时移动的圆点
        View view = mPoints.getChildAt(0);
        view.setBackgroundResource(R.drawable.point_selected);

        ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
        vp.setAdapter(new PagerAdapter() {

            Map<Integer, View> viewMap = new HashMap<Integer, View>();

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

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                ((ViewPager) container).removeView(viewMap.get(position));
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                View view = viewMap.get(position);
                if (view == null) {
                    view = getLayoutInflater().inflate(PAGERS[position], null);
                    AlphaAnimation a = new AlphaAnimation(0.5f, 1);
                    a.setDuration(300);
                    view.startAnimation(a);
                    viewMap.put(Integer.valueOf(position), view);
                }
                ((ViewPager) container).addView(view);
                return view;
            }

            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                return arg0 == arg1;
            }

            @Override
            public int getItemPosition(Object object) {
                return super.getItemPosition(object);
            }

        });

        vp.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                for (int i = 0; i < mPoints.getChildCount(); i++) {
                    View view = mPoints.getChildAt(i);
                    if (i == mLast) {
                        view.setBackgroundResource(R.drawable.point_unselected);
                    }
                    if (i == position) {
                        view.setBackgroundResource(R.drawable.point_selected);
                    }
                }
                mLast = position;
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {

            }
        });

        
    }
}
原文地址:https://www.cnblogs.com/g-sheng/p/5412289.html