首页 > 其他 > 详细

TextSurface实现文字呈现效果

时间:2015-12-11 02:12:08      阅读:658      评论:0      收藏:0      [点我收藏+]

TextSurface实现文字呈现效果

?

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

效果截图:

?

bubuko.com,布布扣

项目源码: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实现文字呈现效果

原文:http://wuchengyi2015106.iteye.com/blog/2263148

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!