第三方开源库-->TextSurface
Posted Kevin-Dev
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三方开源库-->TextSurface相关的知识,希望对你有一定的参考价值。
一个帮助你实现各种文字效果的动画框架。
项目地址:TextSurface
效果图
实战
1. 添加依赖
repositories
maven url "https://jitpack.io"
//...
dependencies
//...
implementation 'com.github.elevenetc:textsurface:0.9.1'
2. 创建 TextSurface
<su.levenetc.android.textsurface.TextSurface
android:id="@+id/text_surface"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
3. 使用 TextBuilder 创建存放文本的 Text 实例,并设置文字的样式参数:
public class 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)
)
)
);
4. 使用
public class MainActivity extends AppCompatActivity
@BindView(R.id.text_surface)
TextSurface mTextSurface;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
mTextSurface.postDelayed(new Runnable()
@Override public void run()
show();
, 1000);
CheckBox checkDebug = (CheckBox) findViewById(R.id.check_debug);
checkDebug.setChecked(Debug.ENABLED);
checkDebug.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
Debug.ENABLED = isChecked;
mTextSurface.invalidate();
);
private void show()
mTextSurface.reset();
CookieThumperSample.play(mTextSurface, getAssets());
以上是关于第三方开源库-->TextSurface的主要内容,如果未能解决你的问题,请参考以下文章