我正在使用共享元素库中的makeSceneTransitionAnimation API调用,将折叠工具栏的标题中的图像共享到详细信息视图活动。忽略FAB看起来不合适的地方,如果我能让它看起来更好的话,我计划把它们从动画中滑出来。
这看起来很可怕:https://youtu.be/Js91TAvwrV0
这是代码:
折叠工具栏发件人:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void LollipopTransition(View v) throws IOException {
Log.d("The Jones Theory", "LollipopTransition...");
ImageView imgFavorite = (ImageView) findViewById(R.id.header);
final View nestedContent = findViewById(R.id.nested_content);
hideView(nestedContent);
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(PostSelectedActivity.this, imgFavorite, "photo_hero").toBundle());
}
DetailView接收器:
getWindow().getEnterTransition().addListener(new Transition.TransitionListener() {
@Override
public void onTransitionStart(Transition transition) {
}
@Override
public void onTransitionCancel(Transition transition) {
}
@Override
public void onTransitionPause(Transition transition) {
}
@Override
public void onTransitionResume(Transition transition) {
}
@Override
public void onTransitionEnd(Transition transition) {
getWindow().getEnterTransition().removeListener(this);
// load the full version, crossfading from the thumbnail image
Ion.with(photoView)
.crossfade(true)
.deepZoom()
.load(PostImage);
}
我记得也遇到过类似的问题。从文档的某些部分来看,changeImageTransform似乎已经足够了(我认为在某些版本中它看起来确实不错),但请尝试将changeBounds添加到您的transitionSet中
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeImageTransform/>
<changeBounds/>
</transitionSet>
changeImageTransform的文档现在显示
与ChangeBounds相结合,ChangeImageTransform允许更改大小、形状或ImageView.ScaleType的ImageViews平滑地设置内容的动画。