简单实现android炫酷注册页面动画

本文介绍如何简单实现Android应用程序中的炫酷注册页面动画,包括过场动画、圆弧扩散、文字进入离开以及线条缩放效果。通过分析并改进前人的实现,详细讲解了各个动画的实现细节和关键代码,提供了完整的源码链接。
摘要由CSDN通过智能技术生成

最近比较闲,再加上以前懒惰的习惯,决定尽量保持几天一篇博客,这次简单实现一下这个效果.其实主要是在网上看到了一篇博客,里面的效果比较炫,只是我觉得那个之前那个博客的动画有些地方的衔接没有做好,并且没有真正还原原设计,所以这里重新写了一下,简单的实现.原博客地址:http://www.jianshu.com/p/3ff40a06bef6,可以看看之前的实现效果以及原设计的效果。
录制效果有点渣.轻喷!
这里写图片描述
接上个gif图:
这里写图片描述
接下来就开始一步一步分析吧.
首先就是一个比较简单过场动画,具体什么是过场动画我就不多说了,不懂的详细了解一下我这里不讲原因,只讲讲如何实现。这里有2个activtiy,主要的东西其实都在第二个activity里.第一个页面就一个texteview不多说,详细说说第二个activity吧。
http://androidwing.net/index.php/172 这一篇我觉得很不错,大家可以看看。
既然是要实现过场动画,那首先第二个activity就要设置这样的属性

<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>

其中SIGNUP这个TextView是一个共享元素,在2个activity中具有一样的属性.在跳转到第二个activity之前.我们需要穿一些第一个activity中Textview的属性值过去.如下图:

public void singUp(View view){

        //获取view在屏幕中的位置以及宽高做为参数传到第二个activity
        int[] location = new int[2];
        view.getLocationOnScreen(location);
        Intent intent = new Intent(this, HomeActivity.class);
        intent.putExtra("left", location[0]);
        intent.putExtra("top", location[1]);
        intent.putExtra("width", view.getWidth());
        intent.putExtra("height", view.getHeight());
        startActivity(intent);
        overridePendingTransition(0, 0);
    }

记住一点要调用overridePendingTransition(0, 0),关闭系统默认的跳转动画。
在第二个activity中接受到这些参数.

tv_sign_up.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

                layout_sign_up.getViewTreeObserver().removeOnGlobalLayoutListener(this);

                startRevel();
            }
        });

由于第二个acitivity中还有个success和一个下划线line.所以这里我把他们放在一个布局里了.

<RelativeLayout
        android:id="@+id/layout_sign_up"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">

        <TextView
            android:id="@+id/tv_sign_up"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:layout_marginBottom="20dp"
            android:gravity="center"
            android:text=
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值