Marquee text RTL improvements
Changed marquee text to scroll according to the reading direction. Arabic text will show the right edge and scroll towards the left edge and vice versa for Latin. Corrected marquee flicker when scroll animation finished. The ghost scroll's x position was cast to int and it made the text flicker when marquee stops. Ghost part didn't display for RTL languages. Added multiplication with getParagraphDirection to negate the ghost offset. Change-Id: I689039118df01a62f73ef0079c857fea1bfcc5a0
This commit is contained in:
committed by
David Pursehouse
parent
77ceb5e8f1
commit
89bc413b8f
@@ -5147,12 +5147,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
||||
final int width = mRight - mLeft;
|
||||
final int padding = getCompoundPaddingLeft() + getCompoundPaddingRight();
|
||||
final float dx = mLayout.getLineRight(0) - (width - padding);
|
||||
canvas.translate(isLayoutRtl ? -dx : +dx, 0.0f);
|
||||
canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
|
||||
}
|
||||
|
||||
if (mMarquee != null && mMarquee.isRunning()) {
|
||||
final float dx = -mMarquee.getScroll();
|
||||
canvas.translate(isLayoutRtl ? -dx : +dx, 0.0f);
|
||||
canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5166,8 +5166,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
||||
}
|
||||
|
||||
if (mMarquee != null && mMarquee.shouldDrawGhost()) {
|
||||
final int dx = (int) mMarquee.getGhostOffset();
|
||||
canvas.translate(isLayoutRtl ? -dx : dx, 0.0f);
|
||||
final float dx = mMarquee.getGhostOffset();
|
||||
canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
|
||||
layout.draw(canvas, highlight, mHighlightPaint, cursorOffsetVertical);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user