美文网首页
kotlin_转场动画

kotlin_转场动画

作者: 书虫大王X | 来源:发表于2020-08-24 16:01 被阅读0次
1、转场动画的主要运用场景:
  • 在两个activity之间切换时界面的过渡效果。
  • 两个activity或者Fragment之间shared elements切换效果。
2、转场动画的两种常用方式:
  • overridePendingTransition
  • ActivityOptions
3、overridePendingTransition:
平移动画:
创建一个xml文件(translat.xml):
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="-100%p"
    android:duration = "500"
    >
</translate>

创建一个xml文件(translat2.xml):
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%p"
    android:toXDelta="0"
    android:duration = "500"
    >
</translate>

//      在mainActivity中实现跳转动画:
        ykButton.setOnClickListener(){
            Intent().also {
                it.setClass(this,Main2Activity::class.java)
//                添加动画
                overridePendingTransition(R.anim.translate,R.anim.translate2)
                startActivity(it)
            }
        }

//   实现返回动画:
        ykButton2.setOnClickListener(){
            overridePendingTransition(R.anim.translate2,R.anim.translate)
            finish()
        }
4、ActivityOptions(共享动画,相对上一个使用较多):
        button2.setOnClickListener(){
//            1、为要进行切换的两个界面设置共享元素,并设置相同的transitionName
//            2、创建ActivityOptions对象
//            单元素
//            val options = ActivityOptions.makeSceneTransitionAnimation(this,imageView3,"yk1")
//            多元素
            val options = ActivityOptions.makeSceneTransitionAnimation(this, Pair<View,String>(imageView3,"yk1"), Pair<View,String>(imageView4,"yk2")
            )

//             裁剪(还有很多动画效果)
//            val options2 = ActivityOptions.makeClipRevealAnimation(imageView3,0,0,imageView3.width,imageView3.height)
            Intent().also {
                it.setClass(this,activityOptions2::class.java)
                startActivity(it,options.toBundle())
            }
        }

//     添加返回动画:
        button3.setOnClickListener(){
            finishAfterTransition()
        }

5、overridePendingTransition和ActivityOptions实现效果:


效果图

相关文章

网友评论

      本文标题:kotlin_转场动画

      本文链接:https://www.haomeiwen.com/subject/elagjktx.html