Android(安卓)动画基础-变换动画(Twen Animation)
16lz
2021-12-12
Android中有四大动画,它们分别是:变换动画(Tween Animation),帧动画(frame Animation),布局动画(layout Animation),属性动画(Property Animation )。今天我在这里简单的说下变换动画。
Animation的通用属性
xml属性 | java方法 | 解释 |
---|---|---|
android:detachWallpaper | setDetachWallpaper(boolean) | 是否在在壁纸上运行 |
android:duration | setDuration(long) | 动画持续时间,单位为毫秒 |
android:fillAfter | setFillAfter(boolean) | 控件结束后是否保持动画最后的状态 |
android:fillBefore | setFillBefore(boolean) | 控件结束后是否还原到开始动画的状态 |
android:fillEnabled | setFillEnabled(boolean) | 与android:fillBefore效果相同 |
android:interpolator | setInterpolator(Interpolator) | 设定插值器(指定的动画效果,譬如回弹等) |
android:repeatCount | setRepeatCount(int) | 动画重复次数 |
android:repeatMode | setRepeatMode(int) | 重复类型有两个值,reverse表示倒序回放,restart表示从头播放 |
android:startOffset | setStartOffset(long) | 调用start函数之后等待开始运行的时间,单位为毫秒 |
android:zAdjustment | setZAdjustment(int) | 表示被设置动画的内容运行时在Z轴上的位置默认为normal |
变换动画中分为4种:透明度动画,缩放动画,旋转动画,位移动画。今天我在这里会一一说明变换动画的四种动画的使用方法.
1.透明度动画
(1). 属性
xml属性 | java方法 | 解释 |
---|---|---|
android:fromAlpha | AplphaAnimation(float fromAlpah,...) | 动画开始的透明度(0.0,到1.0,0.0是全透明,1.0是不透明) |
android:toAlppha | AlphaAnimation(..., float toAlpha) | 动画结束的透明度 |
(2). 用法
我们现在res文件下新建一个anim文件夹,用来存放动画的xml文件。
anim下的xml代码
<?xml version="1.0" encoding="utf-8"?>
布局文件xml代码
activity中的JAVA代码
package com.example.Tween_Animation;import com.example.androidanimation.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class Alpha_MainActivity extends Activity implements OnClickListener{ private Button button = null; private ImageView imageview = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview = (ImageView) findViewById(R.id.imageview_scale); button = (Button) findViewById(R.id.button_scale); button.setOnClickListener(this); } @Override public void onClick(View v) { //通过AnimationUtils里面的一个静态方法--loadAnimation用来绑定这个动画变换的xml文件 Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha); //imageview加载animation对象 imageview.startAnimation(animation); }}
2.缩放动画
(1). 属性
xml属性 | JAVA方法 | 解释 |
---|---|---|
android:fromXScale | ScaleAnimation(float fromX, …) | 初始X轴缩放比例,1.0表示无变化 |
android:toXScale | ScaleAnimation(…, float toX, …) | 结束X轴缩放比例 |
android:fromYScale | ScaleAnimation(…, float fromY, …) | 初始Y轴缩放比例 |
android:toYScale | ScaleAnimation(…, float toY, …) | 结束Y轴缩放比例 |
android:pivotX | ScaleAnimation(…, float pivotX, …) | 缩放起点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
ScaleAnimation(…, float pivotX, …) | ScaleAnimation(…, float pivotY) | 缩放七点Y轴坐标,同上规律 |
(2). 用法
A.anim下的xml代码
<?xml version="1.0" encoding="utf-8"?>
B.布局文件xml代码
xml代码:同上的布局代码
C.activity的代码
package com.example.Tween_Animation;import com.example.androidanimation.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class Scale_MainActivity extends Activity implements OnClickListener{ private Button button = null; private ImageView imageview = null; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button_scale); imageview = (ImageView) findViewById(R.id.imageview_scale); button.setOnClickListener(this); } public void onClick(View v) { Animation animation = AnimationUtils.loadAnimation(this, R.anim.scale); imageview.startAnimation(animation); }}
3.旋转动画
(1). 属性
xml属性 | JAVA方法 | 解释 |
---|---|---|
android:fromDegrees | RotateAnimation(float fromDegrees, …) | 旋转开始角度,正代表顺时针度数,负代表逆时针度数 |
android:toDegrees | RotateAnimation(…, float toDegrees, …) | 旋转结束角度,正代表顺时针度数,负代表逆时针度数 |
android:pivotX | RotateAnimation(…, float pivotX, …) | 缩放起点X坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:pivotY | RotateAnimation(…, float pivotY) | 缩放起点Y坐标,同上规律 |
(2). 用法
A. anim下的xml代码
<?xml version="1.0" encoding="utf-8"?>
B.布局文件xml代码
xml代码:同上的布局代码
C. activity的代码
package com.example.Tween_Animation;import com.example.androidanimation.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class Rotate_MainActivity extends Activity implements OnClickListener{ private Button button = null; private ImageView imageview = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview = (ImageView) findViewById(R.id.imageview_scale); button = (Button) findViewById(R.id.button_scale); button.setOnClickListener(this); } @Override public void onClick(View v) { //通过AnimationUtils里面的一个静态方法--loadAnimation用来绑定这个动画变换的xml文件 Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate); //imageview加载animation对象 imageview.startAnimation(animation); }}
4.位移动画
(1). 属性
xml属性 | JAVA方法 | 解释 |
---|---|---|
android:fromXDelta | TranslateAnimation(float fromXDelta, …) | 起始点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:fromYDelta | TranslateAnimation(…, float fromYDelta, …) | 起始点Y轴从标,同上规律 |
android:toXDelta | TranslateAnimation(…, float toXDelta, …) | 结束点X轴坐标,同上规律 |
android:toYDelta | TranslateAnimation(…, float toYDelta) | 结束点Y轴坐标,同上规律 |
(2). 用法
A.anim下的xml代码
<?xml version="1.0" encoding="utf-8"?>
B.布局文件xml代码
xml代码:同上的布局代码
C. activity的代码
package com.example.Tween_Animation;import com.example.androidanimation.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class Translate_MainActivity extends Activity implements OnClickListener{ private Button button = null; private ImageView imageview = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview = (ImageView) findViewById(R.id.imageview_scale); button = (Button) findViewById(R.id.button_scale); button.setOnClickListener(this); } @Override public void onClick(View v) { //通过AnimationUtils里面的一个静态方法--loadAnimation用来绑定这个动画变换的xml文件 Animation animation = AnimationUtils.loadAnimation(this, R.anim.translate); //imageview加载animation对象 imageview.startAnimation(animation); }}
以上就是变换动画中的四种情况。
更多相关文章
- android anim 动画效果 基础知识
- Android(安卓)图片的浏览、缩放、拖动和自动居中
- Android(安卓)StageFrightMediaScanner源代码解析
- Android(安卓)开发环境 adt-bundle android-studio sdk adt 下载
- android 细节之 旋转动画
- Android(安卓)Unable to resolve target "Android-14"
- Android(安卓)Property Animation属性动画初识:位移translation(3)
- android win8效果实现进阶(一)
- Android地图添加标记和文字【代码片段】