Android 动画
来源:互联网 发布:数据免费恢复软件 编辑:程序博客网 时间:2024/06/03 17:55
动画
Tween动画:
通过对 View 的内容进行一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。动画效果的定义可以采用XML来做也可以采用编码来做。Tween动画有4种类型:
动画的类型Xml定义动画使用的配置节点 编码定义动画使用的类
渐变透明度动画效果<alpha/> AlphaAnimation
渐变尺寸缩放动画效果<scale/> ScaleAnimation
画面位置移动动画效果<translate/> TranslateAnimation
画面旋转动画效果<rotate/> RotateAnimation
通过代码的形式来实现动画:
public class DemoActivity extends Activity {
AnimationDrawable animationDrawable;
ImageView iv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv = (ImageView) this.findViewById(R.id.iv);//找到ImageView就是要实行动画的图片控件
//动画的综合.可以把多种动画综合起来显示.单个动画不需要这个.
AnimationSet set = new AnimationSet(false);
//渐变透明动画
AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
aa.setDuration(5000);//动画的显示时间
//尺寸缩放的动画.可以从一个点扩大到一个图片的效果
ScaleAnimation sa = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
sa.setDuration(5000);
//位置移动的动画.可以水平和垂直方向同时移动
TranslateAnimation ta = new TranslateAnimation(10.0f, 60.0f, 10.0f, 60.0f);
ta.setDuration(5000);
//旋转动画.可以围绕一个点开始旋转.
RotateAnimation ra = new RotateAnimation(0, 90);
ra.setDuration(5000);
//通过set来添加动画.添加n个动画就是n个动画同时运行.注意要把上面的单独的动画注释掉.
set.addAnimation(ra);
set.addAnimation(ta);
set.addAnimation(sa);
set.addAnimation(aa);
//通过加载布局文件来实现动画效果.
Animation anim = AnimationUtils.loadAnimation(this, R.anim.alphaanim);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.scaleanim);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.translateanim);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.rotateanim);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.set);
//把一个Tween动画应用到某个控件上
iv.setAnimation(anim);
//下面这段代码是把一个Frame动画布置到控件上并开始播放
iv.setBackgroundResource(R.drawable.hit);
animationDrawable = (AnimationDrawable) iv.getBackground();
animationDrawable.start();
}
//由于Frame动画是需要点击一下才能播放的.下面这段代码就是给Frame动画设置一个点击事件
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()== MotionEvent.ACTION_DOWN){
animationDrawable.start();
}
return super.onTouchEvent(event);
}
}
通过布局文件的形式来实现动画:
在res下新建一个anim的文件夹.
在这个文件夹下新建动画文件.先选择Tween动画.再选择具体的动画效果.名字可以随便起.
渐变动画
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="5000"
>
</alpha>
缩放动画
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0"
android:toXScale="2.0"
android:fromYScale="0.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
>
</scale>
位移动画
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0.0"
android:toXDelta="100%p"
android:fromYDelta="0.0"
android:toYDelta="100%p"
android:duration="5000"
>
</translate>
旋转动画
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0.0"
android:toDegrees="180.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
>
</rotate>
动画的综合设置
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<rotate
android:fromDegrees="0.0"
android:toDegrees="180.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
>
</rotate>
<scale
android:fromXScale="0.0"
android:toXScale="2.0"
android:fromYScale="0.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"
>
</scale>
</set>
在配置文件中设置好的动画可以直接在主Activity中引用:
Animation anim = AnimationUtils.loadAnimation(this, R.anim.rotateanim);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.set);
Frame动画:
即顺序播放事先做好的图像,跟放胶片电影类似。开发步骤:
把准备好的图片放进项目res/ drawable下。
在drawable下新建一个xml文件.类型选择就是drawable.
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/girl_1" android:duration="200" />
<item android:drawable="@drawable/girl_2" android:duration="200" />
<item android:drawable="@drawable/girl_3" android:duration="200" />
<item android:drawable="@drawable/girl_4" android:duration="200" />
<item android:drawable="@drawable/girl_5" android:duration="200" />
<item android:drawable="@drawable/girl_6" android:duration="200" />
<item android:drawable="@drawable/girl_7" android:duration="1000" />
<item android:drawable="@drawable/girl_8" android:duration="200" />
<item android:drawable="@drawable/girl_9" android:duration="200" />
<item android:drawable="@drawable/girl_10" android:duration="200" />
<item android:drawable="@drawable/girl_11" android:duration="200" />
</animation-list>
设置好布局文件后在主Activity中把设置好的布局文件显示到控件上
//下面这段代码是把一个Frame动画布置到控件上并开始播放
iv.setBackgroundResource(R.drawable.hit);
animationDrawable = (AnimationDrawable) iv.getBackground();
animationDrawable.start();
}
//由于Frame动画是需要点击一下才能播放的.下面这段代码就是给Frame动画设置一个点击事件
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()== MotionEvent.ACTION_DOWN){
animationDrawable.start();
}
return super.onTouchEvent(event);
}
- Android动画--视图动画
- Android动画--属性动画
- android动画 -- 属性动画
- Android:动画:tween动画
- Android:动画:Frame动画
- Android动画动画二
- Android动画-属性动画
- Android动画【属性动画】
- Android动画-帧动画
- Android动画--帧动画
- Android动画--属性动画
- Android动画-View动画
- android 动画 -- tween动画
- android 动画
- android动画
- android动画
- android动画
- Android动画
- 如何在 Visual C++ CHtmlView 为禁用默认的弹出菜单
- vs2012项目platform toolset设置vs2010 编译报错
- const成员函数如何调用non-const成员变量
- Hadoop在Linux下伪分布式的安装 wordcount实例的运行
- [转] Eclipse中使用正则表达式搜索替换
- Android 动画
- www.mafengwo.com
- jsp自定义标签
- Linux驱动程序学习笔记(2)——自动创建设备文件
- 【js】变形功率正方体
- 一次Linux系统恢复的经历
- 用GDB调试程序
- SQLServer2008设置 开启远程连接
- Extjs tree+tab框架不支持IE的解决办法