Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 27e89ec

Browse files
authored
Merge pull request yuyakaido#233 from yuyakaido/issue/231
Add OverlayInterpolator to define the rate of change of alpha
2 parents d2a8eb0 + 3c90663 commit 27e89ec

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

‎cardstackview/src/main/java/com/yuyakaido/android/cardstackview/CardStackLayoutManager.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.support.v7.widget.RecyclerView;
1010
import android.view.View;
1111
import android.view.ViewGroup;
12+
import android.view.animation.Interpolator;
1213

1314
import com.yuyakaido.android.cardstackview.internal.CardStackSetting;
1415
import com.yuyakaido.android.cardstackview.internal.CardStackSmoothScroller;
@@ -472,25 +473,26 @@ private void updateOverlay(View view) {
472473
bottomOverlay.setAlpha(0.0f);
473474
}
474475
Direction direction = state.getDirection();
476+
float alpha = setting.overlayInterpolator.getInterpolation(state.getRatio());
475477
switch (direction) {
476478
case Left:
477479
if (leftOverlay != null) {
478-
leftOverlay.setAlpha(state.getRatio());
480+
leftOverlay.setAlpha(alpha);
479481
}
480482
break;
481483
case Right:
482484
if (rightOverlay != null) {
483-
rightOverlay.setAlpha(state.getRatio());
485+
rightOverlay.setAlpha(alpha);
484486
}
485487
break;
486488
case Top:
487489
if (topOverlay != null) {
488-
topOverlay.setAlpha(state.getRatio());
490+
topOverlay.setAlpha(alpha);
489491
}
490492
break;
491493
case Bottom:
492494
if (bottomOverlay != null) {
493-
bottomOverlay.setAlpha(state.getRatio());
495+
bottomOverlay.setAlpha(alpha);
494496
}
495497
break;
496498
}
@@ -620,4 +622,8 @@ public void setRewindAnimationSetting(@NonNull RewindAnimationSetting rewindAnim
620622
setting.rewindAnimationSetting = rewindAnimationSetting;
621623
}
622624

625+
public void setOverlayInterpolator(@NonNull Interpolator overlayInterpolator) {
626+
setting.overlayInterpolator = overlayInterpolator;
627+
}
628+
623629
}

‎cardstackview/src/main/java/com/yuyakaido/android/cardstackview/internal/CardStackSetting.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.yuyakaido.android.cardstackview.internal;
22

3+
import android.view.animation.Interpolator;
4+
import android.view.animation.LinearInterpolator;
5+
36
import com.yuyakaido.android.cardstackview.Direction;
47
import com.yuyakaido.android.cardstackview.RewindAnimationSetting;
58
import com.yuyakaido.android.cardstackview.StackFrom;
@@ -21,4 +24,5 @@ public class CardStackSetting {
2124
public SwipeableMethod swipeableMethod = SwipeableMethod.AutomaticAndManual;
2225
public SwipeAnimationSetting swipeAnimationSetting = new SwipeAnimationSetting.Builder().build();
2326
public RewindAnimationSetting rewindAnimationSetting = new RewindAnimationSetting.Builder().build();
27+
public Interpolator overlayInterpolator = new LinearInterpolator();
2428
}

‎sample/src/main/java/com/yuyakaido/android/cardstackview/sample/MainActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import android.view.Gravity
1313
import android.view.View
1414
import android.view.animation.AccelerateInterpolator
1515
import android.view.animation.DecelerateInterpolator
16+
import android.view.animation.LinearInterpolator
1617
import android.widget.TextView
1718
import com.yuyakaido.android.cardstackview.*
1819
import java.util.*
@@ -146,6 +147,7 @@ class MainActivity : AppCompatActivity(), CardStackListener {
146147
manager.setCanScrollHorizontal(true)
147148
manager.setCanScrollVertical(true)
148149
manager.setSwipeableMethod(SwipeableMethod.AutomaticAndManual)
150+
manager.setOverlayInterpolator(LinearInterpolator())
149151
cardStackView.layoutManager = manager
150152
cardStackView.adapter = adapter
151153
cardStackView.itemAnimator.apply {

0 commit comments

Comments
 (0)