KShareViewActivityManager - 一個兼容Android 5.0 以下Shared Element Transition 庫
KShareViewActivityManager
一個兼容Android 5.0 以下Shared Element Transition (頁面間共享元素位移動畫)庫 效果圖:
圖片地址:http://i8.tietuku.com/aa5726b8302ae711.gif
先說缺點吧:在第一個Activity 中的目標View 是wrap_content 時,位移會偏移一點點
使用方法:
A->B
1.在第一個Activity中:
img = (ImageView) findViewById(R.id.img); title = (TextView) findViewById(R.id.title); KShareViewActivityManager.getInstance().startActivity(MainActivity.this, SecondActivity.class,R.layout.activity_second, img, title);
上面的語句中,第三個參數 R.layout.activity_second 傳入的是第二個Activity 的布局layout id,之后的參數是指需要共享元素動畫的View
如何讓Manager 知道是哪兩個View 在頁面之間對應呢?tag 一樣即可,如:activity_main 中:
<ImageView android:id="@+id/img" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginLeft="25dp" android:layout_marginTop="25dp" android:background="@drawable/splash" android:tag="img" />
在activity_second 中:
<ImageView android:id="@+id/img_two" android:layout_width="250dp" android:layout_height="250dp" android:layout_centerInParent="true" android:background="@drawable/splash" android:tag="img" />
tag一樣即可
2.請在Manifest.xml 中的第二個Activity 處(跳轉目標Activity),設置它的 android:theme="@style/SecondActivityTheme"
B->A (回退)
請在ActivityB 中添加:
@Override public void onBackPressed() { KShareViewActivityManager.getInstance(SecondActivity.this).finish(SecondActivity.this); }
好啦
其他用法(添加監聽器,設置動畫時間):
KShareViewActivityManager.getInstance(MainActivity.this).withAction(new KShareViewActivityAction() {@Override public void onAnimatorStart() { } @Override public void onAnimatorEnd() { } }).setDuration(800).startActivity(MainActivity.this, SecondActivity.class, R.layout.activity_second, img, title);</pre><p>項目地址: <a href="/misc/goto?guid=4959659674962102285" rel="nofollow" target="_blank">https://github.com/kot32go/KShareViewActivityManager</a></p>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!