TextSurface实现文字呈现效果
介绍:
TextSurface实现文字呈现效果,TextView字体输入的时候展示的动画效果,类似于PPT的呈现效果。
这个demo可以用在处理字幕子类的效果。
效果截图:

项目源码:http://www.itlanbao.com/code/20151210/10000/100685.html
代码结构如下:
首先需要TextSurface.reset()先重置一下,
其他的动画实现主要由类CookieThumperSample实现
public static void play(TextSurface textSurface, AssetManager assetManager) {
final Typeface robotoBlack = Typeface.createFromAsset(assetManager, "fonts/Roboto-Black.ttf");
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setTypeface(robotoBlack);
Text textDaai = TextBuilder
.create("Daai")
.setPaint(paint)
.setSize(64)
.setAlpha(0)
.setColor(Color.WHITE)
.setPosition(Align.SURFACE_CENTER).build();
Text textBraAnies = TextBuilder
.create("bra Anies")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.BOTTOM_OF, textDaai).build();
Text textFokkenGamBra = TextBuilder
.create(" hy's n fokken gam bra.")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.RIGHT_OF, textBraAnies).build();
Text textHaai = TextBuilder
.create("Haai!!")
.setPaint(paint)
.setSize(74)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.BOTTOM_OF, textFokkenGamBra).build();
Text textDaaiAnies = TextBuilder
.create("Daai Anies")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.WHITE)
.setPosition(Align.BOTTOM_OF | Align.CENTER_OF, textHaai).build();
Text texThyLamInnie = TextBuilder
.create(" hy lam innie mang ja.")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.WHITE)
.setPosition(Align.RIGHT_OF, textDaaiAnies).build();
Text textThrowDamn = TextBuilder
.create("Throw damn")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.BOTTOM_OF | Align.CENTER_OF, texThyLamInnie).build();
Text textDevilishGang = TextBuilder
.create("devilish gang")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.BOTTOM_OF | Align.CENTER_OF, textThrowDamn).build();
Text textSignsInTheAir = TextBuilder
.create("signs in the air.")
.setPaint(paint)
.setSize(44)
.setAlpha(0)
.setColor(Color.RED)
.setPosition(Align.BOTTOM_OF | Align.CENTER_OF, textDevilishGang).build();
textSurface.play(
new Sequential(
ShapeReveal.create(textDaai, 750, SideCut.show(Side.LEFT), false),
new Parallel(ShapeReveal.create(textDaai, 600, SideCut.hide(Side.LEFT), false), new Sequential(Delay.duration(300), ShapeReveal.create(textDaai, 600, SideCut.show(Side.LEFT), false))),
new Parallel(new TransSurface(500, textBraAnies, Pivot.CENTER), ShapeReveal.create(textBraAnies, 1300, SideCut.show(Side.LEFT), false)),
Delay.duration(500),
new Parallel(new TransSurface(750, textFokkenGamBra, Pivot.CENTER), Slide.showFrom(Side.LEFT, textFokkenGamBra, 750), ChangeColor.to(textFokkenGamBra, 750, Color.WHITE)),
Delay.duration(500),
new Parallel(TransSurface.toCenter(textHaai, 500), Rotate3D.showFromSide(textHaai, 750, Pivot.TOP)),
new Parallel(TransSurface.toCenter(textDaaiAnies, 500), Slide.showFrom(Side.TOP, textDaaiAnies, 500)),
new Parallel(TransSurface.toCenter(texThyLamInnie, 750), Slide.showFrom(Side.LEFT, texThyLamInnie, 500)),
Delay.duration(500),
new Parallel(
new TransSurface(1500, textSignsInTheAir, Pivot.CENTER),
new Sequential(
new Sequential(ShapeReveal.create(textThrowDamn, 500, Circle.show(Side.CENTER, Direction.OUT), false)),
new Sequential(ShapeReveal.create(textDevilishGang, 500, Circle.show(Side.CENTER, Direction.OUT), false)),
new Sequential(ShapeReveal.create(textSignsInTheAir, 500, Circle.show(Side.CENTER, Direction.OUT), false))
)
),
Delay.duration(200),
new Parallel(
ShapeReveal.create(textThrowDamn, 1500, SideCut.hide(Side.LEFT), true),
new Sequential(Delay.duration(250), ShapeReveal.create(textDevilishGang, 1500, SideCut.hide(Side.LEFT), true)),
new Sequential(Delay.duration(500), ShapeReveal.create(textSignsInTheAir, 1500, SideCut.hide(Side.LEFT), true)),
Alpha.hide(texThyLamInnie, 1500),
Alpha.hide(textDaaiAnies, 1500)
)
)
);
}
本文介绍了一个使用 TextSurface 实现的文字呈现效果示例,通过不同的动画组合展示了一段文字的渐进显示过程,适用于字幕等场景。
1170

被折叠的 条评论
为什么被折叠?



