BannerViewPager
BannerViewPager copied to clipboard
OverlapPageTransformer 接受可变 alpha 参数,使 alpha 生效
类 BannerManager 中,重写 setMultiPageStyle() 方法:
public void setMultiPageStyle(boolean overlap, float scale, float alpha) {
removeDefaultPageTransformer();
if (overlap && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mDefaultPageTransformer = new OverlapPageTransformer(mBannerOptions
.getOrientation(), scale, 0f, alpha, 0);
} else {
mDefaultPageTransformer = new ScaleInTransformer(scale);
}
mCompositePageTransformer.addTransformer(mDefaultPageTransformer);
}
类 OverlapPageTransformer 中,重写 transformPage() 方法的 alpha 部分:
if (unSelectedItemAlpha != 1f) {
alpha = when {
position < 0 -> {
abs((1 - unSelectedItemAlpha) * position + 1)
}
else -> {
abs((unSelectedItemAlpha - 1) * position + 1)
}
}
}