Android仿网易游戏的精美开场动画+动画基础详解
可以看到现在不少app都加入了开场动画,效果还是挺不错的,今天我就在这分享一下仿网易游戏的开场动画制作,同时我也在文章中加入了Android动画基础的详解,接下来就进入主题吧。
首先是布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>
很简单,只是加入了一个Imageview由于放置开场图。
MainActivity代码:
public class MainActivity extends AppCompatActivity {private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView=(ImageView)findViewById(R.id.image);imageView.setImageResource(R.drawable.netease);AlphaAnimation animation = new AlphaAnimation(0, 1);animation.setDuration(3000);imageView.startAnimation(animation);animation.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);alphaAnimation.setDuration(1500);imageView.startAnimation(animation);alphaAnimation.setFillAfter(true);alphaAnimation.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {Intent intent=new Intent(MainActivity.this,IndexActivity.class);startActivity(intent);MainActivity.this.finish();}@Overridepublic void onAnimationRepeat(Animation animation) {}});}@Overridepublic void onAnimationRepeat(Animation animation) {}});}}
代码实现了仿网易游戏开场图渐变的效果,实际上这里只用到了Android系统的AlphaAnimation透明度动画。除了透明度动画外,Android系统还包括RotateAnimation旋转动画,TranslateAnimation移位动画,ScaleAnimation缩放动画,和AnimationSet 动画效果集合,当然还可以实现自定义动画。
先介绍一下各类动画中包含的方法,实际上动画效果是可以在xml中实现的,这里由于篇幅有限,只介绍Java方式。
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轴上的位置(top/bottom/normal),默认为normal |
接下来介绍一下各种动画效果及实现方式:
1.透明度动画AlphaAnimation:
Java中的基本使用方法:
AlphaAnimation animation = new AlphaAnimation(0, 1);animation.setDuration(3000);imageView.startAnimation(animation);
其中创建AlphaAnimation对象时传入了参数0,1,代表透明度从0(完全透明)到1(不透明)变化。
在我的代码中用到了.setAnimationListener方法为动画添加监听事件,使用时必须重写onAnimationStart,onAnimationEnd,onAnimationRepeat这三个方法,分别代表动画开始,动画结束,动画重放是的逻辑功能。
2.旋转动画RotateAnimation
RotateAnimation rotate = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(1000);
rotateButton.startAnimation(rotate);
构造函数中的四个变量分别代表从角度0转到360度,Animation.RELATIVE_TO _SELF意为旋转中心类型,意思是相对组件自身,偏移量0.5f,意为50%,在这里即表示让组件以自身中心点为中心轴旋转。
3.平移动画TranslateAnimation
TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0.5f);translate.setDuration(1000);translateButton.startAnimation(translate);
TranslateAnimation的使用方法与RotateAnimation 类似,重点是指定相对哪个组件来移动
4.缩放动画ScaleAnimation
ScaleAnimation scale = new ScaleAnimation(1, 0, 1, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);scale.setDuration(1000);scaleButton.startAnimation(scale);
构造函数中各个变量分别代表组件在X轴从一缩小到零,Y轴从一放大到二,缩放中心为相对自身的中心点
5.动画集合AnimationSet
AnimationSet animationSet = new AnimationSet(true);animationSet.setDuration(3000);AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);animationSet.addAnimation(alphaAnimation);animationSet.addAnimation(rotateAnimation);imageView.startAnimation(animationSet);
这个很好理解吧?动画集合也就是同时实现多种动画效果。相信看到这里小伙伴们一定能自把己写出一些基础的动画效果了,顺便把我的源码地址也发布一下,里面不仅有开场动画,还有开场导航页的功能,希望对你们有所帮助。
网易游戏开场动画加炫酷开场导航页
Android仿网易游戏的精美开场动画+动画基础详解相关推荐
- 视频教程-FPS游戏逆向与安全+UE4引擎基础详解-其他
FPS游戏逆向与安全+UE4引擎基础详解 想把自己的知识传播出去,让更多人学习到 苏瑞兵 ¥188.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取 ...
- Android 仿QQ好友分组列表、ExpandableListView的使用详解
ListView只能显示一级列表,如果我们需要像QQ好友列表的那样的效果,就需要用到ExpandableListView,入门新手可能对该控件不是很熟悉,下面就详解一下基本用法,其实跟ListView ...
- android分类功能,Android 仿网易新闻客户端分类排序功能
先来看看网易新闻客户端以及自己实现的效果图,效果当然还是网易的好 gridviewsort.gif 如何实现拖拽一个Item 用WindowManager添加一个ImageView,并且将这个Imag ...
- android 仿网易新闻客户端源码都有
原文:android 仿网易新闻客户端源码都有 android 仿网易新闻服务端源码 源代码下载地址: http://www.zuidaima.com/share/1550463560944640.h ...
- php仿苹果,关于8个超炫酷仿苹果应用的HTML5动画的图文详解
苹果的产品一直以精美的UI著称,无论是软件应用还是硬件设备.本文主要分享了8个很不错的HTML5动画应用,这些动画正式模仿了苹果的各类应用,有焦点图.钟表.菜单等HTML5应用和jQuery插件,大家 ...
- android 创建帧动画,Android 逐帧动画创建实例详解
Android 逐帧动画创建实例详解 前言: 我们看早期电影的时候,电影通常是一张一张播放,用我们现在专有名词来说,就是一帧帧来,安卓同样有这样动画效果的编排形式. 那么我们先定义逐帧动画xml文件 ...
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- 网易考拉海购Dubbok框架优化详解
网易考拉海购Dubbok框架优化详解 摘要:微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈.本文结合网易考拉海购引用的开源Dubbo框架,分享支持考拉微服务 ...
- android相册和拍照并裁剪图片大小,Android 拍照并对照片进行裁剪和压缩实例详解...
Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码. 调用摄像头拍照,对拍摄照片进行裁剪,代码如下. ...
最新文章
- python绘制三维轨迹_Python学习(一) —— matplotlib绘制三维轨迹图
- Android 10 中有关限制非 SDK 接口的更新
- python中list的运算,操作及实例
- 信息系统项目管理师-项目集、项目组合管理考点笔记
- 正在启动oracle universal,oracle的常见问题与解决
- 生物智能与AI——关乎创造、关乎理解(上)
- MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
- 广度优先搜索——USACO08FEB(洛谷 P2895)
- 有源带阻和无源带阻的区别_一文看懂AOC有源光缆与DAC高速线缆的差异
- linux grub 删除文件,删除grub的方法(转)
- [你的灯亮着吗]读书笔记
- Axios FormData
- C++/测绘附和导线测量源码
- 正弦余弦算法的樽海鞘群算法
- 目标检测综述学习笔记
- 基于推特数据挖掘交通事件的城市交通流深度学习预测模型
- android 在线获取音乐歌词lrc文件
- python实现时间序列预处理
- 3D游戏建模真的很累吗?前景怎么样?又需要哪样的基础
- NAO机器人——运动控制(2)