把一個視圖變成碎片的過渡動畫:StarWars.Android

jopen 8年前發布 | 16K 次閱讀 Android開發 移動開發

把一個視圖變成碎片的過渡動畫:StarWars.Android 。

StarWars.Android

使用說明:

dribbble上的項目.

還可以在 我們的博客中 了解我們是如何實現的。

需要

  • Android SDK 15+

  • OpenGL ES 2.0+

 

build.gradle:

dependencies {
    //...
    compile 'com.yalantis:starwarstiles:0.1.0'
}

把fragment或者activity的主視圖包裹在TilesFrameLayout中:

<com.yalantis.starwars.TilesFrameLayout
  android:id="@+id/tiles_frame_layout"
  android:layout_height="match_parent"
  android:layout_width="match_parent"
  app:sw_animationDuration="1500"
  app:sw_numberOfTilesX="35">

  <!-- Your views go here -->

</com.yalantis.starwars.TilesFrameLayout>

用這些屬性調整動畫:

  • app:sw_animationDuration ? 持續時間 毫秒

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

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

在fragment或者activity的onPause() 和 onResume()中,記得調用相應的方法:

@Override
public void onResume() {
    super.onResume();
    mTilesFrameLayout.onResume();
}

@Override
public void onPause() {
    super.onPause();
    mTilesFrameLayout.onPause();
}

要開始動畫,只需調用:

mTilesFrameLayout.startAnimation();

當動畫結束的時候,將調用回調函數:

@Override
public void onAnimationFinished() {
   // Hide or remove your view/fragment/activity here
}

 


項目地址: https://github.com/Yalantis/StarWars.Android

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!