个人博客:haichenyi.com。感谢关注
这个东西其实很简单,我这里只是做一个简单的记录。
XML代码如下:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom"
tools:context="com.haichenyi.activitytransitionanimation.MainActivity">
android:id="@+id/img"
android:layout_width="300dp"
android:layout_height="200dp"
android:transitionName="wang"
android:src="@mipmap/bg"/>
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"/>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="300dp"
android:src="@mipmap/bg"
android:transitionName="wang"/>
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="back"/>
java代码如下:
/**
* Author: 海晨忆.
* Date: 2018/3/29
* Desc:
*/
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//共享元素转场动画,只支持android 5.0,所以加一个判断
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
startActivity(new Intent(MainActivity.this, Step1Activity.class),
ActivityOptions.makeSceneTransitionAnimation(MainActivity.this,
findViewById(R.id.img), "wang").toBundle());
} else {
startActivity(new Intent(MainActivity.this, Step1Activity.class));
}
}
});
}
}
上面代码,就是一个Button点击跳转。这个共享元素的核型代码,就是一个方法:
ActivityOptions.makeSceneTransitionAnimation(Activity activity,
View sharedElement, String sharedElementName)
三个参数:
Activity activity:activity对象,这个不用多说了
View sharedElement:共享元素的那个控件
String sharedElementName:共享元素控件的那个transitionName属性的值。前面xml里面的注释讲过要相同,有三个位置用到这个:跳转activity的xml里面,跳转的目标activity的xml里面,再就是这里,跳转的代码这里需要设置。
就这么简单。