Skip to content

Commit

Permalink
添加水平方向滚动支持
Browse files Browse the repository at this point in the history
  • Loading branch information
YvesCheung committed Mar 26, 2020
1 parent 36b51a3 commit 5a32813
Show file tree
Hide file tree
Showing 5 changed files with 332 additions and 231 deletions.
46 changes: 46 additions & 0 deletions app/src/main/java/com/yy/mobile/rollingtext/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,21 @@
import com.yy.mobile.rollingtextview.strategy.AlignAnimationStrategy;
import com.yy.mobile.rollingtextview.strategy.AlignAnimationStrategy.TextAlignment;
import com.yy.mobile.rollingtextview.strategy.Direction;
import com.yy.mobile.rollingtextview.strategy.NormalAnimationStrategy;
import com.yy.mobile.rollingtextview.strategy.SimpleCharOrderStrategy;
import com.yy.mobile.rollingtextview.strategy.Strategy;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import kotlin.Pair;

public class MainActivity extends AppCompatActivity {

private Handler handler = new Handler();
Expand Down Expand Up @@ -159,5 +166,44 @@ public void run() {
charOrder2.setText("g"); //just like charOrder1 but with different charOder
}
}, 2000L);

final RollingTextView diffDirection = findViewById(R.id.directionExample);
diffDirection.setAnimationDuration(500L);
diffDirection.addCharOrder(CharOrder.UpperAlphabet);
diffDirection.setLetterSpacingExtra(10);
diffDirection.setCharStrategy(new NormalAnimationStrategy() {
@NotNull
@Override
public Pair<List<Character>, Direction> findCharOrder(
char sourceChar,
char targetChar,
int index,
@Nullable Iterable<Character> order) {
Pair<List<Character>, Direction> origin =
super.findCharOrder(sourceChar, targetChar, index, order);
return new Pair<>(origin.getFirst(), diffDirection(index));
}

private Direction diffDirection(int index) {
if (index == 0) {
return Direction.SCROLL_LEFT;
} else if (index == 1) {
return Direction.SCROLL_UP;
} else if (index == 2) {
return Direction.SCROLL_DOWN;
} else {
return Direction.SCROLL_RIGHT;
}
}
});
new Runnable() {
int idx = 0;

@Override
public void run() {
diffDirection.setText(String.valueOf(1111 * (idx++ % 9 + 1)));
handler.postDelayed(this, 1000L);
}
}.run();
}
}
Loading

0 comments on commit 5a32813

Please sign in to comment.