Android 面试 - 动画

1.视图动画:补间动画、逐帧动画

补间动画

平移动画(Translate)

缩放动画(scale)

旋转动画(rotate)

透明度动画(alpha)

逐帧动画

动作拆分成帧的形式

2.属性动画

出现的版本:Android 3.0(API 11)后才提供的一种全新动画模式

在一定时间间隔内,通过不断改变值并赋值给对象的属性从而实现该对象在该属性上的动画效果

以上内容来自博主:

https://blog.csdn.net/carson_ho/category_9268277.html

下面介绍一种淡入淡出的效果,点击btn_before按钮实现淡入、点击btn_after实现淡出:

AnimateActivity.java


import androidx.appcompat.app.AppCompatActivity;



import android.animation.Animator;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;



import com.example.demo20220303.R;



public class AnimateActivity extends AppCompatActivity implements View.OnClickListener {



    Button btn_before,btn_after;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_animate);

    }



    @Override

    protected void onResume() {

        super.onResume();



        btn_before = findViewById(R.id.btn_before);

        btn_after = findViewById(R.id.btn_after);



        btn_before.setOnClickListener(this);

        btn_after.setOnClickListener(this);



    }



    @Override

    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.btn_before: {

                btn_before.setAlpha(0f);

                btn_before.setVisibility(View.VISIBLE);

                btn_before.animate()

                        .alpha(1f)

                        .setDuration(3000)

                        .setListener(null);

                break;

            }case R.id.btn_after: {

                btn_after.animate()

                        .alpha(0f)

                        .setDuration(3000)

                        .setListener(new Animator.AnimatorListener() {

                            @Override

                            public void onAnimationStart(Animator animation) {



                            }



                            @Override

                            public void onAnimationEnd(Animator animation) {

                                btn_after.setVisibility(View.INVISIBLE);

                            }



                            @Override

                            public void onAnimationCancel(Animator animation) {



                            }



                            @Override

                            public void onAnimationRepeat(Animator animation) {



                            }

                        });

                break;

            }

            default:

                break;

        }

    }

}



activity_animate.xml


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值