这部动画到底是怎么回事



我正在使用共享元素库中的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平滑地设置内容的动画。

最新更新