先上效果图
产品要求一个无限循环滑动的效果。
第一,用viewgroup写,画一个圆,把圆心点向上移动。但实际应用效果不好。
第二,用神奇的recyclerview,
自定义LayoutManager去实现。https://github.com/wuyr/PathLayoutManager地址。这是一切的基类。
int marginTop = (int) getResources().getDimension(R.dimen.dp_100); int bottom = (int) getResources().getDimension(R.dimen.dp_90); int widthPixels = DensityUtil.getWidthPixels(mActivity); //画轮盘曲线 Path path = new Path(); path.moveTo(0, marginTop); path.quadTo(widthPixels / 2, marginTop + bottom, widthPixels, marginTop); pathLayoutManager = new PathLayoutManager(path, (int) (widthPixels * 0.4f)); pathLayoutManager.setScrollMode(PathLayoutManager.SCROLL_MODE_LOOP); pathLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); pathLayoutManager.setItemDirectionFixed(true); //放大比例。[0] 是放大比率 [1] 是放大的位置。 0.5f意为 控件50%的位置为放大最大点。 float[] ratios = new float[2]; ratios[0] = 1.35f; ratios[1] = 0.5f; pathLayoutManager.setItemScaleRatio(ratios); rvScrollMenu.setLayoutManager(pathLayoutManager);