欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 视图动画(一)

程序员文章站 2022-03-01 21:11:15
...

一、视图动画标签

概述

视图动画有5中类型组成:

alpha:渐变透明度
scale:渐变尺寸伸缩
translate:画面变换位置移动
rotate:画面转移旋转移动
set:定义动画集

scale标签

scale_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000"> //动画持续时间 
<scale android:fromXScale="0.1" //初始X轴的缩放 
android:fromYScale="0.1" //初始y轴的缩放 
android:toXScale="1.4" //目标x轴的缩放 
android:toYScale="1.4" //目标y轴的缩放 
android:pivotX="150" //以控件的位置原点坐标,动画开始的起始位置x轴坐标 
android:pivotY="150"/> //以控件的位置原点坐标,动画开始的起始位置y轴坐标 
</set>

pivotX有三种数值:
150 直接数字,则是以控件为原点坐标的xy的坐标值(150,150),以目标控件为原点
150% 百分比的,是以控件为原点坐标的,为控件的宽度的150%的坐标,150%那就是控件宽度的150%
150%p 上面同理,但是以父控件的150%
java代码

startAnimBtn.setOnClickListener(new View.OnClickListener() {
 @Override 
public void onClick(View v) { 
//装载动画 R.anim.scale_anim 为动画位置 
Animation scaleAnimation=AnimationUtils.loadAnimation(mContext,R.anim.scale_anim); //启动动画 scaleTV.startAnimation(scaleAnimation); 
} 
});

共同属性
所有动画都继承自Animation类,所以有一些共同的属性。

android:duration="3000" //动画持续时间,毫秒单位 
android:fillAfter="true" //true动画结束,保持控件结束时的状态 
android:fillBefore="true"//true动画结束,保持控件最初始状态 
android:repeatCount="3" //动画重复次数,
infinite表示无限循环 
android:repeatMode="restart" //重复的类型,
restart表示从头开始,reverse表示倒序回放 
android:interpolator="@android:interpolator/accelerate_cubic" //插值器,控制速度等

看看回放和倒序回放
倒序回放:

android:repeatCount="3" 
android:repeatMode="reverse"

回放:

android:repeatCount="3" 
android:repeatMode="restart"

alpha标签

<alpha android:duration="3000" //持续时间 android:fromAlpha="0.1" //初始透明度 android:toAlpha="1"/> //最大透明度 数值在0.0~1.0之间

rotate标签

<alpha android:fromAlpha="0.01" //初始角度 android:toAlpha="1"/> //旋转角度 取值范围可以为负值,为逆时针,正值为顺时针

translate标签

<translate android:fromXDelta="50" //以控件为原坐标,x轴加50 为起始X轴 
android:fromYDelta="50" //以控件为原坐标,y轴加50 为起始y轴 
android:toXDelta="400" //目标x轴 
android:toYDelta="400" /> //目标y轴

set标签

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:duration="8000" 
android:fillAfter="false" 
android:fillBefore="true"> 
<scale 
android:fromXScale="0.1" 
android:fromYScale="0.1" 
android:pivotX="150" 
android:pivotY="150" 
android:toXScale="1.4" 
android:toYScale="1.4" /> 
<alpha 
android:fromAlpha="0.5" 
android:toAlpha="1"/> 
<rotate android:fromDegrees="0.0" 
android:toDegrees="360"/> 
<translate 
android:fromXDelta="50" 
android:fromYDelta="50" 
android:toXDelta="300" 
android:toYDelta="300" />
 </set>
相关标签: android