Android基本动画

本文介绍了Android中基础动画的四大类型:Tween Animation、Layout Animation、Frame Animation和Property Animation,重点讲解了Tween Animation的Alpha、Scale、Translate和Rotate动画,并通过XML和Java代码两种方式展示了其实现。此外,还探讨了Property Animation的优势,它是如何改变View的真实属性,以及ValueAnimator、ObjectAnimator和AnimatorSet的使用。文章以实例解析了ObjectAnimator的ofFloat方法,并给出了透明、旋转、缩放和平移动画的代码示例。
摘要由CSDN通过智能技术生成

一、android中基础动画中主要分为四种:

  1. Tween Animation.变换动画
  2. Layout Animation 布局动画
  3. Frame Animation.帧动画
  4. Property Animation 属性动画

二、动画学习

一:Tween Animation变换动画:

在变换动画中分为基本的四种:

1:Alpha:渐变透明度动画类型

2:Scale:渐变尺寸动画类型

3:Translate:位置移动动画类型

4:Rotate:旋转动画类型

其中这四种方法所通用的属性是一样的,属性如下:

1,Duration:表示动画持续时间,其单位为毫秒 ,一般在java中实现的是按照比如 button.setDuration(1000);(其中button为一个引用,1000为毫秒,也就是动画持续时间。)

2,fillAfter:表示动画转换在动画结束后被应用状态,也就是说比如在Translate中可能动画运行为一段平移,fillAfter就是说在动画结束后确定动画对象所处的位置。其返回值为一个boolean值,为true时表示结束就定在结束的位置,如果为false就说明结束后跳回动画开始前的位置。

3,fillBefore:动画转化在动画开始前的位置,可以理解与fillAfter相互理解。

4,interpolator:动画插入器(用于对一个动画进行一个加速,减速插入器的作用)

5:repeatcount:动画重复的次数,对于重复动画的定义。

6:repeatmode:决定动画重复是顺序还是倒序重复。

7,startoffset:动画与动画之间的时间间隔(一般用于两个或者多个动画的连续播放,也可以设置监听器来代替此功能)

在java里,有如下几种类型:

1,AlphaAnimation有参数fromAlpha:起始时的透明度,toAlpha:结束后的透明度用(0.0f到1.0f表示)f表示浮点数。

2,ScaleAniamtion有fromX,toX,和fromY,toY,以及pirotX,priotY等参数,分别表示起始和结束时坐标的大小位置,以及对于x,y坐标开始的位置。

3,TranslateAnimation有参数fromxDelta,fromyDelta为移动前x,y的起始坐标,toxDelta,toyDelta分别为结束时的x,y坐标。

4,RotateAnimation有设置参数fromDegrees起始角度,toDegrees终止角度,以及pirotX,priotY参数。

1.XML方式设置动画
package com.bw.day02;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;

import day01.bw.com.myapplicationfour.R;

@ContentView(R.layout.activity_tween_anima)
public class TweenAnimaActivity extends AppCompatActivity {
   

    @ViewInject(R.id.showAnima)
    private ImageView showAnima;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tween_anima);
        x.view().inject(this);
    }
    @Event(value = {
   R.id.alpha,R.id.rotate,R.id.scale,R.id.translate,R.id.setAnima},type = View.OnClickListener.class)
    private void click(View view){
   
        switch (view.getId()){
   
            case R.id.alpha:
                setAlpha();
                break;
            case R.id.rotate:
                setrotate();
                break;
            case R.id.scale:
                setScale();
                break;
            case R.id.translate:
                setTranslate();
                break;
            case R.id.setAnima:
                setSetAnima();
                break;
        }
    }

    private void setSetAnima() {
   
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.set);
        showAnima.startAnimation(animation);
    }

    private void setTranslate() {
   
        Animation animation 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值