我有2个Activity,共享元素过渡效果很好。目前仅应用了 ChangeBounds 过渡效果。
我想在共享元素移动时应用淡入淡出的过渡效果,因此顺序为 ORDERING_TOGETHER。
public class TransitionUtils {
public static Transition makeSharedElementEnterTransition(final Context context, final long duration) {
TransitionSet set = new TransitionSet();
set.setOrdering(TransitionSet.ORDERING_TOGETHER);
set.setDuration(duration);
Transition changeBounds = new ChangeBounds();
changeBounds.addTarget(context.getString(R.string.transition_name_search_text));
set.addTransition(changeBounds);
Transition fade = new Fade(Fade.OUT);
fade.addTarget(context.getString(R.string.transition_name_search_text));
set.addTransition(fade);
return set;
}
}
startActivity 调用 ActivityOptions.makeSceneTransitionAnimation
在 EndActivity 中,设置了进入共享元素转换
public class EndActivity extends Activity{
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blabla);
getWindow().setSharedElementEnterTransition(TransitionUtils.makeSharedElementEnterTransition(this,2000));
}
}
注意:我注意到
- Fade()函数常常用于getWindow().setEnterTransition()
- 为TransitionSet设置duration会应用到所有的Transitions,除了Fade。
如何将淡入淡出效果应用于共享元素?我做错了什么?