共享元素变换
1.完成两个activity的效果切换
in MainActivity(界面1)
activity_main_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
//传入选中的Item对应的ID
intent.putExtra(SubActivity.EXTRA_PARAM_ID, "123");
//主要的语句
//通过makeSceneTransitionAnimation传入多个Pair
//每个Pair将一个当前Activity的View和目标Activity中的一个Key绑定起来
//在目标Activity中会调用这个Key
ActivityOptionsCompat activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
MainActivity.this,
new Pair<View, String>(activity_main_img,
SubActivity.VIEW_IMAGE_KEY));
// ActivityCompat是android支持库中用来适应不同android版本的
ActivityCompat.startActivity(MainActivity.this, intent, activityOptions.toBundle());
}
});
in SubActivity(界面2)
activity_sub_img = findViewById(R.id.activity_sub_img);
//主要的语句---将当前Activity的View和自己定义的Key绑定起来
ViewCompat.setTransitionName(activity_sub_img, VIEW_IMAGE_KEY);
针对API小于21的情况可能需要查看源码做调整。