public AutoScrollViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public AutoScrollViewPager(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
/**
- 动态添加viewpager和小圆点
*/
private void init() {
mContext = getContext() ;
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
setClipChildren(false);
pageMargin = getResources().getDimensionPixelSize(R.dimen.page_margin);
viewPager = new ViewPager(mContext);
LayoutParams vparams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
vparams.leftMargin = pageMargin * 2;
vparams.rightMargin = pageMargin * 2 ;
viewPager.setLayoutParams(vparams);
addView(viewPager);
mLinearLayout = new LinearLayout(mContext);
LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.BOTTOM ;
mLinearLayout.setGravity(Gravity.CENTER);
mLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
addView(mLinearLayout,params);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
play();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
cancel();
}
/**
- 初始化viewpager
*/
private void initViewPager() {
if (mAdapter==null){
return;
}
viewPager.setCurrentItem(currentIndex);
//设置红缓存的页面数
viewPager.setOffscreenPageLimit(1);
// 设置2张图之前的间距。
viewPager.setPageMargin(pageMargin);
// viewPager.setPageTransformer(true, new ZoomOutPageTransformer());
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position0){
currentIndex = mAdapter.getCount()-2 ;
}else if (position == mAdapter.getCount()-1){