Android学习笔记(一)——xml及代码创建动画

这篇博客详细介绍了Android中的补间动画,包括透明度、平移、旋转和缩放。从XML和代码两个方面展示了如何创建这些动画,并解释了相关属性,如`android:duration`, `android:fillAfter`, `android:repeatCount`等。还通过实例演示了AlphaAnimation, ScaleAnimation, RotateAnimation和TranslateAnimation的用法,以及如何组合动画使用AnimationSet。" 104660883,8223412,虚拟机克隆步骤详解,"['虚拟机管理', 'Linux操作系统', '网络配置']
摘要由CSDN通过智能技术生成

前言: 关于Android中的动画吧,从我一开始接触Android的时候,就陆陆续续的接触过,不得不说,动画在Android应用中应用的还是很多的,熟悉掌握了动画,也可以装装B,做出各种吊炸的效果,好吧,有的时候你觉得自己会的东西但是真正做起来的时候有感觉很吃力,这就说明你根本就没有真正的了解它,写这系列的博客也是为了复习一下Android动画,巩固一下自己所学的知识,还是一样,大牛勿喷O(∩_∩)O~

我们会从先从很基础的内容开始,然后慢慢到一些复杂的动画,一起加油吧,骚年!!

Android中的动画分为:补间动画(平移、旋转、缩放、透明度)、帧动画、属性动画。

名称 含义
补间动画 补间动画与逐帧动画在本质上是不同的,逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的。补间动画的优点是可以节省空间。
帧动画 通过播放一系列的图片从而产生动画效果,可以简单的理解为图片的切换动画,很显然,如果图片多或者很大的话,就会导致OOM。
属性动画 属性动画是API11以后才有的一个动画,(当然,我们后面也会用一个第三方的库来兼容低版本)通过不断的修改view的属性,从而达到动画的效果。

我们这节先来关注一下补间动画:
补间动画分为:透明度、平移、旋转、缩放。

名称 xml中标签 对应的java类 表现形式
透明度 alpha AlphaAnimatino 改变view的透明度
平移 translate TranslateAnimation 平移view
旋转 rotate RotateAnimation 旋转view
缩放 scale ScaleAnimation 缩放view

补充一下:
在adt和as中,我们补间动画的存放位置是res/anim中:
这里写图片描述

从Animation类继承的属性

Animation类是所有动画(scale、alpha、translate、rotate)的基类。
Animation中公用的属性有:

  • android:duration 动画持续时间,以毫秒为单位
  • android:fillAfter 如果设置为true,控件动画结束时,将保持动画最后时的状态
  • android:fillBefore 如果设置为true,控件动画结束时,还原到开始动画前的状态
  • android:fillEnabled 与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态
  • android:repeatCount 重复次数
  • android:repeatMode 重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重新放一遍,必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。
  • android:interpolator 设定插值器,其实就是指定的动作效果,比如物理中的需要做什么运动(匀速直线运动、曲线运动),后面会单独讲的。
  • startOffset 延时多少时间后开始执行动画。

一、透明度Scale
如果你的工程中没有anim文件夹的话,自己创建一个哦,或者用as自动生成(在res目录中右键–>Android resource File):
这里写图片描述

ScaleAnimation中有两个重要的属性:

  • android:fromAlpha 动画开始的透明度,从0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明
  • android:toAlpha 动画结束时的透明度,也是从0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明

1、我们利用xml创建一个Scale动画:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:duration="800"
    android:repeatCount="-1"
    android:repeatMode="reverse"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    />

2、加载xml动画:

AlphaAnimation alpha= (AlphaAnimation) AnimationUtils.loadAnimation(this,R.anim.anim_alpha1);

3、播放ScaleAnimation动画:

tv_anim.startAnimation(alpha);

4、代码很简单,实现的效果是(透明度从0到1不断的循环)我们看一下效果:

这里写图片描述

效果是看到了,接着我们用代码实现一下:
1、AlphaAnimation 的构造方法:

  • AlphaAnimation(Context context, AttributeSet attrs) 从本地XML加载动画,基本不用
  • AlphaAnimation(float fromAlpha, float toAlpha)
/**
     * 透明度动画测试
     * <?xml version="1.0" encoding="utf-8"?>
     * <alpha xmlns:android="http://schemas.android.com/apk/res/android"
     * android:fromAlpha="0"
     * android:toAlpha="1"
     * android:duration="800"
     * android:repeatCount="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值