前言
最近的一个项目需要用到这种效果, 所以今天我们来实现这个ViewPager+小圆点+无限循环,这种效果可以用来作首页的广告啊, 各种显示图片的地方都就可以.
ViewPager.OnPageChangeListener
我们知道ViewPager有一个方法是经常用到的, 就是 onPageChangeListener(…) ,这个方法是用来监听Viewpager滑动的, 所以我们要加小圆点就需要自己实现这个方法.
代码如下:
public class DetailsPhotoPagerListener implements ViewPager.OnPageChangeListener { private Context mContext; private LinearLayout mLinearLayout; //底部圆点布局 private int mSize; //圆点数量 private List<ImageView> mDotView; //圆点容器 public DetailsPhotoPagerListener(Context context, LinearLayout linearLayout, int size) { mContext = context; mLinearLayout = linearLayout; mSize = size; initData(); } private void initData() { mDotView=new ArrayList<>(); for (int i = 0; i < mSize; i++) { ImageView imageView = new ImageView(mContext); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); params.leftMargin = 10; //设置圆点相距距离 params.rightMargin = 10; if (i == 0) { //初始化为红点 imageView.setBackgroundResource(R.drawable.bg_details_photo_viewindicator_red); } else { imageView.setBackgroundResource(R.drawable.bg_details_photo_viewindicator_grey); } mLinearLayout.addView(imageView,params); mDotView.add(imageView); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < mSize; i++) { if ((position % mSize) == i) { //如果是当前的位置就设置为红点 mDotView.get(i).setBackgroundResource(R.drawable.bg_details_photo_viewindicator_red);
Android ViewPager 小圆点 + 无限循环 + 动态滑动
最新推荐文章于 2024-04-21 09:57:24 发布