0

我使用Android Lollipop轉換工作,而且我在下面的問題sumbled:Android的 - 不同的轉換與多個共享的元素

  1. 我有CardViewImageView,並在它的,頂部TextView
  2. 當我點擊卡片時,會啓動一個新的活動,它包含位於不同位置的ImageViewTextView
  3. 如果我不包括在Transition作爲共享元素TextView,突然自敗[進入後面]的ImageView,不看,好,太好了。
  4. 如果我包含它,它不會很好地縮放文本,並突然改變到最終尺寸(我知道this solution已經,但問題是我想保持默認ImageViewTransition,這是一個組合一個ChangeBoundsTransition,一個ChangeImageTransform,等等)。

因此,任何人知道如何有推出新Activity時被拋出針對不同的共享視圖不同的轉變?

乾杯

回答

0

OK,

這是可以實現擴展Transition類。由於我想動畫不同的ImageView和TextView,我只寫了TextTransform子類Transform,類似於Android API 21+的一部分ChangeImageTransform。關鍵是重寫此方法(ChangeImageTransform所示的情況看起來對ImageView對象):

@Override 
private void captureValues(TransitionValues transitionValues) { 
    View view = transitionValues.view; 
    if (!(view instanceof ImageView) || view.getVisibility() != View.VISIBLE) { 
     return; 
    } 
    (...) 
} 

然後你擦所有轉換到新的場景,以及相關的變換將被連接到其對應的觀點:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> 
    <fade android:fadingMode="fade_out" /> 
    <changeBounds /> 
    <changeImageTransform /> 
    <com.mypackage.transforms.TextTransform /> 
    <fade android:fadingMode="fade_in" /> 
</transitionSet> 

然後設置這個Transition使用新Activity的OnCreate方法setSharedElementEnterTransition(inflatedTransitionSet);