0

我正在使用来自 Shared Element lib 的 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());
}

详细视图接收器

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);

        }
4

1 回答 1

1

我记得有一个类似的问题。从文档的某些部分看来,changeImageTransform 应该足够了(我认为在某些版本中它看起来确实不错),但尝试在此处将 changeBounds 添加到您的 transitionSet以获得以下信息:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeImageTransform/>
<changeBounds/>
</transitionSet>

changeImageTransform的文档现在确实说

结合 ChangeBounds,ChangeImageTransform 允许改变大小、形状或 ImageView.ScaleType 的 ImageView 平滑地为内容设置动画。

于 2015-11-23T23:40:35.460 回答