android:跳转到activity时指定动画
一,代码:
1,目标activity中指定动画
public class MylistActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
//状态栏透明
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
// 设置activity的窗口属性为contentFeature,即可使用切换动画
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
Transition explode = TransitionInflater.from(this).inflateTransition(R.transition.slide_right);
// 此处获取了系统内置的explode动画效果设置给了activity的窗口对象
getWindow().setEnterTransition(explode);
//设置view
setContentView(R.layout.activity_mylist);
doGetData();
}
2,启动activity时指定动画
//给按钮增加点击事件
Button myButton = findViewById(R.id.apibutton);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理点击事件
// 创建Intent对象,指定要启动的Activity组件名(完整路径名)
Intent intent = new Intent(MainActivity.this, MylistActivity.class);
// 增加要传递的参数
intent.putExtra("name", "王富贵"); // 传递字符串数据
intent.putExtra("id", 25); // 传递整型数据
// 启动目标Activity
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());
System.out.println("点击完成");
}
});
3,slide_right.xml
<slide xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:slideEdge="right" />
二,测试效果:
