共享过渡动画故障

时间:2015-05-15 20:18:13

标签: android android-animation material-design shared-element-transition

我有什么

我已正确设置权限。

<item name="android:windowContentTransitions">true</item>        
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>

<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
    @transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">
    @transition/change_image_transform</item>

这是我的转换文件,

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

现在,在我的主活动中,我给了一个带有图像缩略图的GridView。

View photo = (View) list.getChildAt(position).findViewById(R.id.fileThumb);
                    photo.setTransitionName("photo" + position);
                    ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(getActivity(), Pair.create(photo, photo.getTransitionName()));

                    Intent intent = new Intent(getActivity(), GalleryActivity.class);
                    intent.putExtra(Config.GALLERY_EXTRA, position);
                    getActivity().startActivity(intent, options.toBundle());

在我的详情活动中,

我有一个带有片段的ViewPager。在片段的onCreate()中,我做到了这一点。

final PhotoView photoView = new PhotoView(container.getContext());
                    relativeLayout.addView(photoView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
photoView.setTransitionName("position"+pos);

动画似乎可以处理正确的项目,但不是很顺利。动画中似乎有一个小故障。但是,退出过渡有点平滑。但仍然不完美。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您使用的是Chris Banes的PhotoView库吗?如果是这样,那不是你的错,而是库中的一个错误:https://github.com/chrisbanes/PhotoView/issues/243