zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.54k stars 434 forks source link

OverlapPageTransformer 接受可变 alpha 参数,使 alpha 生效 #305

Open 24suixinsuoyu opened 1 year ago

24suixinsuoyu commented 1 year ago

类 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)
          }
        }
      }