Animation的理解
来源:互联网 发布:windows上类似imovie 编辑:程序博客网 时间:2024/09/21 06:35
Animation的理解
今天学习了如何设置动画,给大家分享一下。
1、动画的分类:View动画 Drawable动画
2、这里我只分享View动画的做法:
有两种设置:编码设置 即在Activity里面进行设置动画。
Xml文件中设置。
3、制作动画的基本过程:1)编码设置
1、创建动画对象
2、进行设置
3、启动动画
2)Xml设置
1、定义动画文件 (注意生成的Xml文件不在layout文件夹中,要创建一个anim文件夹,动画的Xml文件都要存放在此文件夹)
2、加载动画文件得到动画对象
3、启动动画
3)复合动画的设置
1、创建透明动画并设置
2、创建旋转动画并设置
3、创建复合动画
4、添加两个动画
5、启动复合动画对象
4、动画的类型:缩放动画、旋转动画、透明度动画、移动动画、复合动画
下面是我做的动画:
缩放动画:
//创建动画对象 设置 启动动画
public void codeScale(View v){
tv_va.setText("Code缩放动画:宽度从0.5到1.5,高度从0.0到1.0,圆心为顶部中点,延迟1s开始,持续2s,最终还原。");
ScaleAnimation scaleAnimation = new ScaleAnimation(0.5f,1.5f,0,1, Animation.ABSOLUTE,0.5f,Animation.ABSOLUTE,0);
//scaleAnimation = new ScaleAnimation(0.5f,1.5f,0,1, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0);
scaleAnimation.setStartOffset(1000);
scaleAnimation.setDuration(2000);
scaleAnimation.setFillBefore(true);
imageView.startAnimation(scaleAnimation);
}
// 定义动画文件 加载动画文件得到动画对象 启动动画
public void xmlScale(View v){
tv_va.setText("Xml缩放动画:宽度从0到1.5,高度从0.0到1.0,圆心为右下角,延迟1s开始,持续3s,最终固定。");
Animation animation= AnimationUtils.loadAnimation(this,R.anim.scale_test1);
imageView.startAnimation(animation);
}
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0"
android:fromYScale="0"
android:toXScale="1.5"
android:toYScale="1"
android:startOffset="1000"
android:duration="3000"
android:pivotX="100%"
android:pivotY="100%"
android:fillAfter="true">
</scale>
旋转动画:
public void codeRotate(View v){
tv_va.setText("code旋转动画:以图片中心为中心,从负90到正90,持续5s。");
RotateAnimation rotateAnimation=new RotateAnimation(-90,90,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
rotateAnimation.setDuration(5000);
imageView.startAnimation(rotateAnimation);
}
public void xmlRotate(View v){
tv_va.setText("Xml旋转动画:以左顶点为中心,从正90到负90,持续5s。");
Animation animation= AnimationUtils.loadAnimation(this,R.anim.scale_test);
imageView.startAnimation(animation);
}
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="90"
android:toDegrees="-90"
android:duration="5000">
</rotate>
透明度动画:
public void codeAlpha(View v){
tv_va.setText("Code透明度动画:从完全透明到完全不透明,持续5s。");
AlphaAnimation alphaAnimation= new AlphaAnimation(0,1);
alphaAnimation.setDuration(5000);
imageView.startAnimation(alphaAnimation);
}
public void xmlAlpha(View v){
tv_va.setText("Xml透明度动画:从完全透明到完全不透明,持续4s。");
Animation animation = AnimationUtils.loadAnimation(this,R.anim.alpha_test);
imageView.startAnimation(animation);
}
<?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="4000">
</alpha>
移动动画:
public void codeTranslation(View v){
tv_va.setText("Code移动动画:向右移动一个自己的宽度,向下移动一个自己的高度,持续2秒。");
TranslateAnimation translateAnimation = new TranslateAnimation(Animation.ABSOLUTE,0,Animation.RELATIVE_TO_SELF,1,Animation.ABSOLUTE,0,Animation.RELATIVE_TO_SELF,1);
translateAnimation.setDuration(2000);
imageView.startAnimation(translateAnimation);
}
public void xmlTranslation(View v){
tv_va.setText("Xml移动动画:从屏幕的右边逐渐回到原来的位置,持续2秒。");
Animation animation = AnimationUtils.loadAnimation(this,R.anim.translation_test);
imageView.startAnimation(animation);
}
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="2000">
</translate>
public void codeAnimationset(View v){
tv_va.setText("Code复合动画:透明度从透明到不透明," +
"持续2s,接着进行旋转360度的动画,持续1s");
//1 创建透明动画并设置 2创建旋转动画并设置 3创建复合动画 4添加两个动画 5启动复合动画对象
AlphaAnimation alphaAnimation=new AlphaAnimation(0,1);
alphaAnimation.setDuration(2000);
RotateAnimation rotateAnimation=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
rotateAnimation.setDuration(1000);
rotateAnimation.setStartOffset(2000);
AnimationSet animationSet = new AnimationSet(true);
animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(rotateAnimation);
imageView.startAnimation(animationSet);
}
以上是我分享的内容。
阅读全文
0 0
- Animation的理解
- 关于peoperty animation的理解
- Core Animation 中关于timeOffset的理解
- android Animation 对Android动画的理解
- Core Animation 深入理解2
- Core Animation 深入理解3
- core Animation 深入理解4
- animation-fill-mode:both理解
- Android菜鸟的我对于view animator 和 property animation异同的理解
- CSS3 中最容易混淆的Transition Transform Animation 的理解
- 对UIView动画和Core Animation的关系的一点理解
- 对UIView动画和Core Animation的关系的一点理解
- Property Animation和View Animation的对比
- Animation.setFillAfter and Animation.setFillBefore的作用
- Animation.setFillAfter and Animation.setFillBefore的作用
- Animation.setFillAfter and Animation.setFillBefore的作用
- Animation动画的解析与自定义Animation
- iOS Core Animation 深入理解1
- python2.7安装setuptools和pip及卸载
- MotionEvent的理解
- HTML img图片加载失败时用默认图片替换
- Linux 安装
- 名称不能以"<"字符(十六进制值0x3C)开头
- Animation的理解
- 编写简单的聊天界面
- 腾讯云服务器云+校园领取代金卷地址
- 使用编辑器编写一个java才程序
- 关于通知的一些小问题
- TCP的粘包问题
- c++数据结构快速排序
- Java抽象类的概念和使用
- 数据结构--one