Android-全屏动画
2016-03-31 23:51
405 查看
通常我们在微信聊天的时候,输入特定的词语,如“生日快乐”,“圣诞快乐”的时候,会出现全屏的动画表情,觉得很好玩。最近在公司实习期间,由于任务比较松,空闲时间还是很多的,想想办法模仿了一下这个效果,哈哈。
效果图(由于懒得去找表情包,所以就用安卓 图标代替了~。~)
总体来说,这个动画效果难度不大,难点在于:
1 如何实现动画效果
Android3.0之后引入了属性动画,这让我们在实现一些动画的时候,更加自如和方便。这里每一个小视图都是一个ImageView,我们为其设置属性动画,通过不断改变其坐标(x,y),来实现动画。
2 如何实现不同速度
通过随机数获取不同的加速度。
3 如何让动画局部填充整个界面
动画效果看起来还是有些区别的,其实就是动画的数量,以及每秒产生视图的个数的差别。
附上代码:源码
效果图(由于懒得去找表情包,所以就用安卓 图标代替了~。~)
总体来说,这个动画效果难度不大,难点在于:
1 如何实现动画效果
Android3.0之后引入了属性动画,这让我们在实现一些动画的时候,更加自如和方便。这里每一个小视图都是一个ImageView,我们为其设置属性动画,通过不断改变其坐标(x,y),来实现动画。
2 如何实现不同速度
通过随机数获取不同的加速度。
3 如何让动画局部填充整个界面
/** * 挂载到某个Activity的最顶层 * @param activity */ public void attachActivity(Activity activity) { ViewParent parent = getParent(); if(parent != null && parent instanceof ViewGroup) { ViewGroup parentView = (ViewGroup) parent; parentView.removeView(this); } FrameLayout decor = (FrameLayout)activity.getWindow().getDecorView(); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); decor.addView(this, lp); mIsShowing = true; }
动画效果看起来还是有些区别的,其实就是动画的数量,以及每秒产生视图的个数的差别。
附上代码:源码
相关文章推荐
- 读取Android sd卡的文件
- android获取外置SD卡的路径
- Android开发学习笔记《一》
- Android四大组件
- Android竖屏模式实现横屏效果
- 关于Android布局优化(二)
- Android 中在一个程序中启动另一程序
- android软键盘弹出引起的各种不适终极解决方案
- Android性能优化-缓存的使用
- android音视频采集参考
- Recylerview 加载更多功能实现(分页加载)
- 简介好看的anroid自定义日历控件,源码
- ListView优化之图片的三级缓存(LruCache)
- Android 中Fragment与Activity通信大汇总
- Android调试,The selected device is incompatible
- android开发之Service的使用
- Android的基本世界观——系统简介,组件逻辑及其他
- Android 多线程文件断点下载器实现(造轮子系列)(一)
- android中的线程池学习笔记
- 绘图机制ColorMatrix