一、描述
是一个Activity可以把View通过startActivity传给另一个启动的Activity2,并且显示在Activity2上
首先看XML配置MainActivity.java的ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/image_view_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/test"
android:transitionName="share" />
MainActivity2.java的ImageView配置这里可以把大小设置成不一样,这样效果会更好
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/image_view_2"
android:layout_width="match_parent"
android:transitionName="share"
android:layout_height="match_parent"
android:src="@mipmap/test" />
两个XML有个共同点就是配置相同的android:transitionName="share"
我们在看看在启动的时候,和普通的启动Activity有什么不同代码如下:
mImagerView = findViewById(R.id.image_view);
findViewById(R.id.start_activity_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT > 20) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, mImagerView, "share").toBundle());
} else {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
});
在MainActivity2.java文件中什么都不需要处理,就可以完成简单的Activity元素共享了