Android Tween Animation 补间动画

本章节我们来写一个范例,使用补间动画 (Tween Animation ) 将登陆面板从底部弹出


  1. 创建一个 空的 Android 项目 cn.twle.android.TweenLogin

  2. 修改布局文件 activity_main.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#dddddd">
    
        <Button
            android:id="@+id/btn_show_panel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#F26968"
            android:gravity="center"
            android:paddingBottom="15dp"
            android:paddingTop="15dp"
            android:text="注册 or 登陆 "
            android:textColor="#FFFFFF"/>
    
        <LinearLayout
            android:id="@+id/login_panel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal"
            android:visibility="gone">
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#F26968"
                android:gravity="center"
                android:paddingBottom="15dp"
                android:paddingTop="15dp"
                android:text="登陆"
                android:textColor="#FFFFFF"/>
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#323339"
                android:gravity="center"
                android:paddingBottom="15dp"
                android:paddingTop="15dp"
                android:text="注册"
                android:textColor="#FFFFFF"/>
        </LinearLayout>
    
    </RelativeLayout>
    
  3. 修改 MainActivity.java

    package cn.twle.android.tweenlogin;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.animation.TranslateAnimation;
    import android.widget.Button;
    import android.widget.LinearLayout;
    
    public class MainActivity extends AppCompatActivity {
        private LinearLayout login_panel;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button btn_show_panel = (Button) findViewById(R.id.btn_show_panel);
            login_panel = (LinearLayout) findViewById(R.id.login_panel);
    
            btn_show_panel.setOnClickListener(new View.OnClickListener(){
    
                @Override
                public void onClick( View view) {
    
                    //设置动画,从自身位置的最下端向上滑动了自身的高度,持续时间为 500 ms
                    final TranslateAnimation ctrlAnimation = new TranslateAnimation(
                            TranslateAnimation.RELATIVE_TO_SELF, 0, TranslateAnimation.RELATIVE_TO_SELF, 0,
                            TranslateAnimation.RELATIVE_TO_SELF, 1, TranslateAnimation.RELATIVE_TO_SELF, 0);
    
                    // 设置动画的过渡时间
                    ctrlAnimation.setDuration(500l);
    
                    login_panel.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            login_panel.setVisibility(View.VISIBLE);
                            login_panel.startAnimation(ctrlAnimation);
                        }
                    }, 1000);
                }
    
            });
    
        }
    }
    

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.