逐帧(Frame)动画+补间(Tween)动画的小案例
来源:互联网 发布:衣服除皱喷雾 知乎 编辑:程序博客网 时间:2024/06/06 07:09
案例实现简单介绍
倒数计时器的实现:通过Frame实现从9开始,每隔一秒自动减一的计时器,然后将将代表不同数字的图片显示在ImageView 上
火箭发动:当计时器到0时,将火箭启动(喷火功能)
火箭起飞:利用Tween设置加速直线运动,火箭不断的按比例缩小,透明度不断减小…..
如果需要完整代码请击:http://pan.baidu.com/s/1o8dFaUA 密码:nlwc
java实现效果图片
代码实现
public class MainActivity extends Activity { int time = 0; ImageView iv_rocket; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv_rocket = (ImageView) findViewById(R.id.iv_feiji); // 启动帧动画 // 找到设置动画的控件 final ImageView iv = (ImageView) findViewById(R.id.iv); // 取出背景,并强装成动画 AnimationDrawable anim = (AnimationDrawable) iv.getBackground(); // 获取动画持续时间 // 先获取所有帧数 int frameCount = anim.getNumberOfFrames(); // 遍历每一帧,取出每一帧的持续时间,并累加 for (int i = 0; i < frameCount; i++) { time += anim.getDuration(i); } // 启动线程,等待动画结束 new Thread() { public void run() { SystemClock.sleep(time); // 动画结束,把ImageView设置不可见 // 在主线程中运行 runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub iv.setVisibility(View.GONE); // 启动火箭 begin(); } }); } }.start(); // 启动 anim.start(); } // 添加火箭启动方法 public void begin() { // feiImageView.setVisibility(View.VISIBLE); AnimationDrawable aim = (AnimationDrawable) iv_rocket .getBackground(); aim.start(); } public void fly(View view){ Animation anim = AnimationUtils.loadAnimation(this, R.anim.rocket_set); //启动动画 iv_rocket.startAnimation(anim); }}
xml的相关实现
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <!--duration:持续时间fillAfter:是否在最后一帧停放图片fromYDelta:fromXDelta:从哪里开始移动toYDelta:toXdalta:移动到哪里pivotX:pivotY:中线点 --> <translate android:duration="2000" android:fillAfter="false" android:fromYDelta="0" android:toYDelta="-300%p" /> <scale android:duration="2000" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.2" android:toYScale="0.2" /> <alpha android:duration="2000" android:fromAlpha="1" android:toAlpha="0.2" /> <!-- <rotate android:duration="2000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="0%" android:toDegrees="360" > </rotate> --></set>
0 0
- 逐帧(Frame)动画+补间(Tween)动画的小案例
- 补间动画(Tween)
- 补间( Tween)动画
- Android动画效果(补间动画Tween与 帧动画Frame)
- Android tween动画(补间动画)
- android动画之:补间动画(Tween动画)
- 补间动画实现(tween)
- 补间动画(Tween Animation)
- android补间动画(Tween Animation)
- android 补间(Tween)动画
- Android 连续的补间动画(Animation/Tween)
- 补间(Tween)动画
- 补间动画Tween
- 补间(Tween)动画
- Tween(补间动画)
- Tween 补间动画
- Tween补间动画
- Android笔记 动画之tween(补间)动画demo
- 线索化二叉树BinaryTreeThreading
- java学习日记_20:面向对象之this关键词的概述和。07.08
- windows下面使用RMarkDown
- 安卓开发学习心得-------自定义适配器BaseAdapter基础
- ubuntu使用
- 逐帧(Frame)动画+补间(Tween)动画的小案例
- Python使用链接Mysql数据库
- Jetty源码分析(二)---ContainerLifeCycle组件
- 二叉树相关面试题
- 汇编预备知识(一)
- Atitit.你这些项目不都是模板吗?不是原创 集成和整合的方式大总结
- Oracle Linux 对服务器和存储的硬件认证列表
- M路平衡B树
- AIM Tech Round 3 (Div. 2) D. Recover the String (构造)