介绍:

把一个视图变成碎片的过渡动画,效果不能再牛逼了。

运行效果:

StarWars.Android碎片式过渡动画

使用说明:

dribbble上的项目.

还可以在 我们的博客中 了解我们是如何实现的。

需要

  • Android SDK 15+

  • OpenGL ES 2.0+

 

build.gradle:


  1. dependencies {
  2.     //...
  3.     compile 'com.yalantis:starwarstiles:0.1.0'
  4. }

把fragment或者activity的主视图包裹在TilesFrameLayout中:


  1. <com.yalantis.starwars.TilesFrameLayout
  2.   android:id="@+id/tiles_frame_layout"
  3.   android:layout_height="match_parent"
  4.   android:layout_width="match_parent"
  5.   app:sw_animationDuration="1500"
  6.   app:sw_numberOfTilesX="35">
  7.  
  8.   <!-- Your views go here -->
  9.  
  10. </com.yalantis.starwars.TilesFrameLayout>

用这些属性调整动画:

  • app:sw_animationDuration – 持续时间 毫秒

  • app:sw_numberOfTilesX – the number of square tiles the plane is tessellated into broadwise


  1. mTilesFrameLayout = (TilesFrameLayout) findViewById(R.id.tiles_frame);
  2. mTilesFrameLayout.setOnAnimationFinishedListener(this);

在fragment或者activity的onPause() 和 onResume()中,记得调用相应的方法:


  1. @Override
  2. public void onResume() {
  3.     super.onResume();
  4.     mTilesFrameLayout.onResume();
  5. }
  6.  
  7. @Override
  8. public void onPause() {
  9.     super.onPause();
  10.     mTilesFrameLayout.onPause();
  11. }

要开始动画,只需调用:


  1. mTilesFrameLayout.startAnimation();

当动画结束的时候,将调用回调函数:


  1. @Override
  2. public void onAnimationFinished() {
  3.    // Hide or remove your view/fragment/activity here
  4. }

相关文章:

  • 2021-07-22
  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-14
  • 2021-07-16
  • 2021-10-06
  • 2021-04-15
  • 2021-07-14
  • 2021-09-02
相关资源
相似解决方案