Wie würden Sie unendlich glatte horizontale Scroll von links nach rechts (und umgekehrt) implementieren?Unendliche glatte scrollX für HorizontalScrollView
HorizontalScrollView
enthält nur ein TextView
Element mit ziemlich langen Text innerhalb daher möchte ich diesen Text anstelle des Benutzers scrollen.
Ich fand ObjectAnimator
, nur eins zu sein, um glattes Scrollen zu erreichen. Jetzt ist das Problem, es richtig zu loopen. Ich fand zwei enge Lösungen, obwohl sie nicht funktionieren wie erwartet:
Verwendung
CycleInterpolator()
. Kann nicht glatt Verhalten erreichen:ObjectAnimator animRight = ObjectAnimator.ofInt(hScrollVIew, "scrollX", hScrollVIew.getRight()); animRight.setRepeatCount(ValueAnimator.INFINITE); animRight.setInterpolator(new CycleInterpolator(1f)); animRight.setDuration(4000); animRight.setStartDelay(0); animRight.start();
erstellen 2 Animationen (links und rechts), die einer nach dem anderen nennen würde. Diese Lösung hat einen merkwürdigen Verzögerungseffekt nach der ersten Animation.
final ObjectAnimator animRight = ObjectAnimator.ofInt(hScrollVIew, "scrollX", holder.hsvTitleHolder.getRight()); animRight.setDuration(SCROLL_DURATION); final ObjectAnimator animLeft = ObjectAnimator.ofInt(hScrollVIew, "scrollX", 0); animLeft.setDuration(SCROLL_DURATION); animRight.addListener(new Animator.AnimatorListener() { Override public void onAnimationStart(Animator animation) {} @Override public void onAnimationEnd(Animator animation) { hScrollVIew.clearAnimation(); animLeft.start(); } @Override public void onAnimationCancel(Animator animation) {} @Override public void onAnimationRepeat(Animator animation) {} }); animLeft.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) {} @Override public void onAnimationEnd(Animator animation) { hScrollVIew.clearAnimation(); animRight.start(); } @Override public void onAnimationCancel(Animator animation) {} @Override public void onAnimationRepeat(Animator animation) {} }); animRight.start();
Wenn jemand ähnliches Problem konfrontiert bitte Ihre Erfahrungen teilen.
siehe [diese] (http://pastebin.com/4xXMPTnq) – pskink
@pskink woah! Das funktioniert wie ein Zauber! Ich danke dir sehr. Ich kämpfe seit Tagen damit. Vielleicht möchten Sie diesen Code als Antwort posten, damit ich sie als Antwort akzeptieren kann. – AnZ