我有一个recyclerview,单击它的项,我打开一个共享元素转换的活动,如下所示:
Intent myIntent = new Intent(getActive, EnlargeActivity.class);
myIntent.putExtra("IMAGE_URL", imageArrayList.get(position).getUrl());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
holder.iv.setTransitionName(String.valueOf(MainActivity.position + "ZoomImage"));
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(getActive,
holder.iv,
ViewCompat.getTransitionName(holder.iv));
context.startActivity(myIntent, options.toBundle());
在活动中,它具有viewpager:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enlarge);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setEnterTransition(null);
}
supportPostponeEnterTransition();
在扩展FragmentStatePageRadapter的ViewPager适配器中,返回具有ImageView的Fragment ProductDetailViewPagerFragment,并且正在加载类似以下图像:(mainActivity.position是RecyclerView的位置)
Picasso.with(getActivity())
.load(url)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setTransitionName(MainActivity.position + "ImageZoom");
}
getActivity().supportStartPostponedEnterTransition();
}
@Override
public void onError() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setTransitionName(MainActivity.position + "ImageZoom");
}
getActivity().supportStartPostponedEnterTransition();
}
});