首先:根据banner的宽度,计算高度
再计算单个的宽度,这个宽度不是固定值,是通过左右设置产生的。
- Banner banner = getViewHolder().banner;
- int width = banner.getWidth();//todo:需要减去左右margin
- //控件高度
- int height = (int)(140.f/343f*width*0.75);
- banner.getLayoutParams().height = height;
- double bianjie = 101.5f/342.0*width;
- banner.setBannerGalleryMZ2((int)bianjie,0.809523f);
原理:
Position:可以理解为是一个… -2,-1,0,1,2-,…的数值动画,其中每个view同时获取不同的position.
View的动画:
这里在移动过程中根据position变化不停的平移+缩放+alpha来实现的。
注意事项:
未解决和待讨论:
1.从折叠屏展开到收起,很卡顿,目前解决办法是收起时隐藏掉viewpager2, 下一帧在显示出来。没有从根本解决这个问题。
后来发现,是设置数据冲突导致的,因为无限循环是设置了一个挺大的值(比如我设置成了 实际列表的333倍),走了这个最大列表的onBinderview