页面跳转过度动画使用

GitHub地址:https://github.com/huzenan/EasyTransition

使用方法

1.依赖注入

compile 'com.github.huzenan:EasyTransition:v1.0.0'

2.在跳转界面的时候使用该代码跳转

//后面的参数必须要与跳转的界面ID有相同的,因为配对到两个相同的ID,该框架就会自己做过渡动画
 EasyTransitionOptions options=EasyTransitionOptions.makeTransitionOptions(getActivity(),
                    view.findViewById(R.id.house_details_img_banner),
                    view.findViewById(R.id.item_owner_house_txt_title)
            );
            EasyTransition .startActivity(new Intent(getContext(),HouseDetailsActivity.class),options);

3.在跳转之后的界面使用该代码

private fun initOtherViews() {
        layout_gone_content.visibility = View.VISIBLE
        layout_gone_content.alpha = 0f
        layout_gone_content.translationY = -30f
        layout_gone_content.animate()
                .setDuration(300)
                .alpha(1f)
                .translationY(0f)

        layout_gone_buttom.visibility = View.VISIBLE
        layout_gone_buttom.alpha = 0f
        layout_gone_buttom.translationY = -30f
        layout_gone_buttom.animate()
                .setDuration(300)
                .alpha(1f)
                .translationY(0f)
    }

    private fun dismissActivity(){
        layout_gone_content.animate()
                .setDuration(300)
                .alpha(0f)
                .translationY(-30f)
        layout_gone_buttom.animate()
                .setDuration(300)
                .alpha(0f)
                .translationY(-30f)
                .setListener(object :AnimatorListenerAdapter() {
                    override fun onAnimationEnd(animation: Animator?) {
                        //回到之前的界面,第二个参数为动画执行时间
                        EasyTransition.exit(this@HouseDetailsActivity, 300, DecelerateInterpolator())
                    }
                });
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_house_details)
        //第二个参数为时间,第四个参数为跳转完毕的监听
        EasyTransition.enter(this,300,DecelerateInterpolator(),object: AnimatorListenerAdapter() {
            override fun onAnimationEnd(animation: Animator?) {
                initOtherViews()
            }
        })
    }

  override fun onBackPressed() {
        //super.onBackPressed()
       dismissActivity()
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,126评论 25 709
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,303评论 3 283
  • 斜穿树影,满地金黄。 每当做一个选择的时候,总会有对立的论据在拉扯,好像无论怎么选都不是那么心满意足。价值性是逃不...
    cydream阅读 283评论 0 0
  • 一个人的生日 开端:女人经营大公司,金钱富足,儿子却十分叛逆. 发展:女人和儿子吵架...
    WYDream阅读 265评论 0 0
  • 手提一盏灯 就想把世界照亮 掌存一抔土 就想把时空填满 曾经的我 稚气未散 总想着未来 掌握生活的审判 没曾想 多...
    差一步阅读 488评论 0 3