一、共享元素简单使用(Activity -> Activity)
1、在第一个Activity的控件中添加属性:
android:transitionName="0_image"
添加的方式还有:
ViewCompat.setTransitionName(imageView,"0_image");
imageView.setTransitionName("0_image");
2、在第二个Activity的控件中添加相同的属性;
android:transitionName="0_image"
3、使用startActivity()跳转:
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(
MainActivity.this,//上下文
imageView,//使用共享元素的控件
"0_image"//设置的transitionName
).toBundle()
);
二、多个控件同时添加共享元素(Activity->Activity)
场景:点击RecyclerView中任意一个图片可以放大,图片放大之后可以左右切换,返回之后回到对应图片上。
1、在第一个Activity的Adapter的ImageView中添加:
holder.getImageView().setTransitionName(position + "_image");
//并记录下:
Pair[] sharedElements = new Pair[mData.size()];
sharedElements[position] =Pair.create( holder.getImageView(),position+"_image");
2、在第二个Activity中添加:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onPageSelected(int i) {
viewPager.setTransitionName(i+"_image");
}
});
3、使用startActivity()跳转:
startActivity(
intent,
ActivityOptions.makeSceneTransitionAnimation(
context,
sharedElements
).toBundle()
);
未完待续…