可以看到现在不少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仿网易游戏的精美开场动画+动画基础详解相关推荐

  1. 视频教程-FPS游戏逆向与安全+UE4引擎基础详解-其他

    FPS游戏逆向与安全+UE4引擎基础详解 想把自己的知识传播出去,让更多人学习到 苏瑞兵 ¥188.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取 ...

  2. Android 仿QQ好友分组列表、ExpandableListView的使用详解

    ListView只能显示一级列表,如果我们需要像QQ好友列表的那样的效果,就需要用到ExpandableListView,入门新手可能对该控件不是很熟悉,下面就详解一下基本用法,其实跟ListView ...

  3. android分类功能,Android 仿网易新闻客户端分类排序功能

    先来看看网易新闻客户端以及自己实现的效果图,效果当然还是网易的好 gridviewsort.gif 如何实现拖拽一个Item 用WindowManager添加一个ImageView,并且将这个Imag ...

  4. android 仿网易新闻客户端源码都有

    原文:android 仿网易新闻客户端源码都有 android 仿网易新闻服务端源码 源代码下载地址: http://www.zuidaima.com/share/1550463560944640.h ...

  5. php仿苹果,关于8个超炫酷仿苹果应用的HTML5动画的图文详解

    苹果的产品一直以精美的UI著称,无论是软件应用还是硬件设备.本文主要分享了8个很不错的HTML5动画应用,这些动画正式模仿了苹果的各类应用,有焦点图.钟表.菜单等HTML5应用和jQuery插件,大家 ...

  6. android 创建帧动画,Android 逐帧动画创建实例详解

    Android 逐帧动画创建实例详解 前言: 我们看早期电影的时候,电影通常是一张一张播放,用我们现在专有名词来说,就是一帧帧来,安卓同样有这样动画效果的编排形式. 那么我们先定义逐帧动画xml文件 ...

  7. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  8. 网易考拉海购Dubbok框架优化详解

    网易考拉海购Dubbok框架优化详解 摘要:微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈.本文结合网易考拉海购引用的开源Dubbo框架,分享支持考拉微服务 ...

  9. android相册和拍照并裁剪图片大小,Android 拍照并对照片进行裁剪和压缩实例详解...

    Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码. 调用摄像头拍照,对拍摄照片进行裁剪,代码如下. ...

最新文章

  1. python绘制三维轨迹_Python学习(一) —— matplotlib绘制三维轨迹图
  2. Android 10 中有关限制非 SDK 接口的更新
  3. python中list的运算,操作及实例
  4. 信息系统项目管理师-项目集、项目组合管理考点笔记
  5. 正在启动oracle universal,oracle的常见问题与解决
  6. 生物智能与AI——关乎创造、关乎理解(上)
  7. MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
  8. 广度优先搜索——USACO08FEB(洛谷 P2895)
  9. 有源带阻和无源带阻的区别_一文看懂AOC有源光缆与DAC高速线缆的差异
  10. linux grub 删除文件,删除grub的方法(转)
  11. [你的灯亮着吗]读书笔记
  12. Axios FormData
  13. C++/测绘附和导线测量源码
  14. 正弦余弦算法的樽海鞘群算法
  15. 目标检测综述学习笔记
  16. 基于推特数据挖掘交通事件的城市交通流深度学习预测模型
  17. android 在线获取音乐歌词lrc文件
  18. python实现时间序列预处理
  19. 3D游戏建模真的很累吗?前景怎么样?又需要哪样的基础
  20. NAO机器人——运动控制(2)

热门文章

  1. python画图常规设置
  2. 【量化入门】通过几种常见的量化策略框架,学习量化炒股
  3. 【JVM】最全笔记(黑马+尚硅谷+张龙整合笔记)
  4. 强大的第三方视频播放器。
  5. 【格言精选】影视剧情大俗套——你注意到多少
  6. HECTF 部分wp
  7. 基于改进区域生长算法的图像分割方法及实现
  8. 如何避免扫码枪重复扫码
  9. Python一个回合制兵棋小游戏(1)
  10. iOS开发:在苹果开发者官网回复邮件的时候,上传附件一定要用英文命名的原因