61阅读

天真遇到现实分集介绍-Animation 动画介绍和实现

发布时间:2017-09-29 所属栏目:qw

一 : Animation 动画介绍和实现

在前面PopupWindow 实现显示仿腾讯新闻底部弹出菜单 有用到Animation动画效果来实现菜单的显示和隐藏,本文就来介绍下吧。(www.61k.com]

1.Animation 动画类型

Android的animation由四种类型组成:

XML中

alph渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果

JavaCode中

AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果

 2.Android动画模式

Animation主要有两种动画模式:

一种是tweened animation(渐变动画)

XML中JavaCode
alphaAlphaAnimation
scaleScaleAnimation

一种是frame by frame(画面转换动画)

XML中JavaCode
translateTranslateAnimation
rotateRotateAnimation

3.如何在XML文件中定义动画

步骤如下:

①新建 Android 项目

②在res目录中新建anim文件夹

③在anim目录中新建一个my_anim.xml(注意文件名小写)

④在 my_anim.xml 加入动画代码

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >  <alpha />  <scale />  <translate />  <rotate /> </set>

4.Android动画解析--XML

4.1 alpha 渐变透明度动画效果

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >  <alpha  android:duration="1000"  android:fromAlpha="0.0"  android:toAlpha="1.0" />  <!--  透明度控制动画效果 alpha  浮点型值:  fromAlpha 属性为动画起始时透明度  toAlpha 属性为动画结束时透明度  说明: 0.0表示完全透明  1.0表示完全不透明  以上值取0.0-1.0之间的float数据类型的数字  长整型值:  duration 属性为动画持续时间  说明: 时间以毫秒为单位  --> </set>

4.2 scale 渐变尺寸伸缩动画效果

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >  <scale  android:duration="1000"  android:fillAfter="false"  android:fromXScale="0.0"  android:fromYScale="0.0"  android:interpolator="@android:anim/accelerate_decelerate_interpolator"  android:pivotX="50%"  android:pivotY="50%"  android:toXScale="1.4"  android:toYScale="1.4" /> </set><!--  尺寸伸缩动画效果 scale  属性:interpolator 指定一个动画的插入器  在我试验过程中,使用android.res.anim中的资源时候发现  有三种动画插入器:  accelerate_decelerate_interpolator 加速-减速 动画插入器  accelerate_interpolator 加速-动画插入器  decelerate_interpolator 减速- 动画插入器  其他的属于特定的动画效果  浮点型值:  fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 toXScale 属性为动画结束时 X坐标上的伸缩尺寸 fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 toYScale 属性为动画结束时Y坐标上的伸缩尺寸 说明:  以上四种属性值 0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大  pivotX 属性为动画相对于物件的X坐标的开始位置  pivotY 属性为动画相对于物件的Y坐标的开始位置  说明:  以上两个属性值 从0%-100%中取值  50%为物件的X或Y方向坐标上的中点位置  长整型值:  duration 属性为动画持续时间  说明: 时间以毫秒为单位  布尔型值:  fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用 -->

扩展:android实现gif动画 / android 天气动画实现 / android实现动画效果

4.3 translate 画面转换位置移动动画效果

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >  <translate  android:duration="2000"  android:fromXDelta="30"  android:fromYDelta="30"  android:toXDelta="-80"  android:toYDelta="300" />  <!--  translate 位置转移动画效果  整型值:  fromXDelta 属性为动画起始时 X坐标上的位置 toXDelta 属性为动画结束时 X坐标上的位置  fromYDelta 属性为动画起始时 Y坐标上的位置  toYDelta 属性为动画结束时 Y坐标上的位置  注意:  没有指定fromXType toXType fromYType toYType 时候,  默认是以自己为相对参照物 长整型值:  duration 属性为动画持续时间  说明: 时间以毫秒为单位  --> </set>

4.4 rotate 画面转移旋转动画效果

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >  <rotate  android:duration="3000"  android:fromDegrees="0"  android:interpolator="@android:anim/accelerate_decelerate_interpolator"  android:pivotX="50%"  android:pivotY="50%"  android:toDegrees="+350" />  <!--  rotate 旋转动画效果  属性:interpolator 指定一个动画的插入器  在我试验过程中,使用android.res.anim中的资源时候发现  有三种动画插入器:  accelerate_decelerate_interpolator 加速-减速 动画插入器  accelerate_interpolator 加速-动画插入器  decelerate_interpolator 减速- 动画插入器  其他的属于特定的动画效果  浮点数型值:  fromDegrees 属性为动画起始时物件的角度 toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 说明:  当角度为负数——表示逆时针旋转  当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转) pivotX 属性为动画相对于物件的X坐标的开始位置  pivotY 属性为动画相对于物件的Y坐标的开始位置  说明: 以上两个属性值 从0%-100%中取值  50%为物件的X或Y方向坐标上的中点位置  长整型值:  duration 属性为动画持续时间  说明: 时间以毫秒为单位  --> </set>

5.如何使用XML中的动画效果

public static Animation loadAnimation (Context context, int id) //第一个参数Context为程序的上下文 //第二个参数id为动画XML文件的引用 //例子: myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_anim); //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件

6.如何使用XML中的动画效果

//在代码中定义 动画实例对象 private Animation myAnimation_Alpha; private Animation myAnimation_Scale; private Animation myAnimation_Translate; private Animation myAnimation_Rotate;  //根据各自的构造方法来初始化一个实例对象 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f); myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,  Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f); myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,  Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

7.Android动画解析--JavaCode

7.1 AlphaAnimation

① AlphaAnimation类对象定义

private AlphaAnimation myAnimation_Alpha

② AlphaAnimation类对象构造

//第一个参数fromAlpha为 动画开始时候透明度 //第二个参数toAlpha为 动画结束时候透明度 AlphaAnimation(float fromAlpha, float toAlpha) //说明:0.0表示完全透明,1.0表示完全不透明 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);

③ 设置动画持续时间

//设置时间持续时间为 5000毫秒 myAnimation_Alpha.setDuration(5000);

7.2 ScaleAnimation

① ScaleAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

② ScaleAnimation类对象构造

ScaleAnimation(float fromX, float toX, float fromY, float toY,  int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸 //第二个参数toX为动画结束时 X坐标上的伸缩尺寸 //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸 //第四个参数toY为动画结束时Y坐标上的伸缩尺寸 /*说明:  以上四种属性值 0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大 */ //第五个参数pivotXType为动画在X轴相对于物件位置类型 //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置 //第七个参数pivotXType为动画在Y轴相对于物件位置类型 //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置 myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,  Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

扩展:android实现gif动画 / android 天气动画实现 / android实现动画效果

③ 设置动画持续时间

//设置时间持续时间为 700毫秒 myAnimation_Scale.setDuration(700);

7.3 TranslateAnimation

① TranslateAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation类对象构造

//第一个参数fromXDelta为动画起始时 X坐标上的移动位置 //第二个参数toXDelta为动画结束时 X坐标上的移动位置 //第三个参数fromYDelta为动画起始时Y坐标上的移动位置 //第四个参数toYDelta为动画结束时Y坐标上的移动位置 TranslateAnimation(float fromXDelta, float toXDelta,float fromYDelta, float toYDelta)

③ 设置动画持续时间

//设置时间持续时间为 2000毫秒 myAnimation_Translate.setDuration(2000);

7.4 RotateAnimation

① RotateAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

② RotateAnimation类对象构造

RotateAnimation(float fromDegrees, float toDegrees,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)  //第一个参数fromDegrees为动画起始时的旋转角度 //第二个参数toDegrees为动画旋转到的角度 //第三个参数pivotXType为动画在X轴相对于物件位置类型 //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置 //第五个参数pivotXType为动画在Y轴相对于物件位置类型 //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置 myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

② RotateAnimation类对象构造

//设置时间持续时间为 3000毫秒 myAnimation_Rotate.setDuration(3000);

8.如何使用Java代码中的动画效果

 使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果

public void startAnimation (Animation animation)

9.还是来个栗子吧

9.1 使用XML文件方式

①效果图如下:

animation 【Android 基础】Animation 动画介绍和实现

②在XML文件中定义动画,前面已提及

③主界面布局,这没啥好说的,很简单 o(∩_∩)o

④主界面逻辑代码,主要就是这个了,控制动画显示

package com.yanis.base; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; public class AnimationActivity extends Activity implements OnClickListener {  private ImageView imgPic;  private Button btnAlpha, btnScale, btnTranslate, btnRotate;  private Animation myAnimation;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_animation);  intiView();  initData();  }  /**  * 初始化组件  */  private void intiView() {  imgPic = (ImageView) findViewById(R.id.imgPic);  btnAlpha = (Button) findViewById(R.id.btnAlpha);  btnScale = (Button) findViewById(R.id.btnScale);  btnTranslate = (Button) findViewById(R.id.btnTranslate);  btnRotate = (Button) findViewById(R.id.btnRotate);  }  /**  * 初始化数据  */  private void initData() {  btnAlpha.setOnClickListener(this);  btnScale.setOnClickListener(this);  btnTranslate.setOnClickListener(this);  btnRotate.setOnClickListener(this);  }  @Override  public void onClick(View v) {  switch (v.getId()) {  case R.id.btnAlpha:  /**  * 使用XML中的动画效果 第一个参数Context为程序的上下文 第二个参数id为动画XML文件的引用  */  myAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha_anim);  imgPic.startAnimation(myAnimation);  break;  case R.id.btnScale:  myAnimation = AnimationUtils.loadAnimation(this, R.anim.scale_anim);  imgPic.startAnimation(myAnimation);  break;  case R.id.btnTranslate:  myAnimation = AnimationUtils.loadAnimation(this,  R.anim.translate_anim);  imgPic.startAnimation(myAnimation);  break;  case R.id.btnRotate:  myAnimation = AnimationUtils  .loadAnimation(this, R.anim.rotate_anim);  imgPic.startAnimation(myAnimation);  break;  }  } }

9.2 使用Java代码方式

博文游戏开发基础(动画)中有实例说明,此处不再赘述。

10. 用Animation-list实现逐帧动画

栗子效果图如下:

animation 【Android 基础】Animation 动画介绍和实现

步骤如下:

①在res/drawable目录添加图片素材

animation 【Android 基础】Animation 动画介绍和实现

扩展:android实现gif动画 / android 天气动画实现 / android实现动画效果

②在drawable文件夹中添加动画Animation-list帧布局文件

<?xml version="1.0" encoding="utf-8"?> <!--  根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画 根标签下,通过item标签对动画中的每一个图片进行声明 android:duration 表示展示所用的该图片的时间长度 --> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"  android:oneshot="false" >  <item  android:drawable="@drawable/cmmusic_progress_1"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_2"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_3"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_4"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_5"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_6"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_7"  android:duration="150">  </item>  <item  android:drawable="@drawable/cmmusic_progress_8"  android:duration="150">  </item> </animation-list>

③主界面页面布局设置,太简单,不赘述了

④主界面代码如下:

package com.yanis.base; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class AnimationActivity extends Activity implements OnClickListener {  private ImageView imgPic;  private Button btnStart, btnStop;  private AnimationDrawable animationDrawable;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_animation);  intiView();  initData();  }  /**  * 初始化组件  */  private void intiView() {  imgPic = (ImageView) findViewById(R.id.imgPic);  btnStart = (Button) findViewById(R.id.btnStart);  btnStop = (Button) findViewById(R.id.btnStop);  }  /**  * 初始化数据  */  private void initData() {  btnStart.setOnClickListener(this);  btnStop.setOnClickListener(this);  //Sets a drawable as the content of this ImageView.  imgPic.setImageResource(R.drawable.loading_anim);  //给动画资源赋值  animationDrawable = (AnimationDrawable) imgPic.getDrawable();  }  @Override  public void onClick(View v) {  switch (v.getId()) {  case R.id.btnStart:  animationDrawable.start();//开始  break;  case R.id.btnStop: animationDrawable.stop(); //停止  break;  }  } }

本文地址:

扩展:android实现gif动画 / android 天气动画实现 / android实现动画效果

二 : FIFAOnline3 遇到QW应对方法介绍 分析主要手段

今天小编给大家带来的是关于FIFAOnline3 遇到QW应对方法介绍 分析主要手段,小伙伴们一起来看一看吧。

看看对方阵里有没有德布劳内,伊布,吉格斯,卢卡库,有其一则70%是QW党(以QW为主要取分手段);如果C罗,贝尔,伊布同时在场,100%是QW党;

QW的基本套路有俩,一是前锋回敲,引诱你的中卫跟防。你一旦跟防他最多再传一脚,趁你中卫“出逃”马上QW往你禁区吊。二是中后场直接QW,特别是交换球权后当你的球员还没归位,他会看准时机来一脚QW反击,拼赢了就形成威胁,被没收了就归零重来,其实就是混、赌。

(www.61k.com)

要防住这两招,一是对方回敲千万不要跟,反而要往回跑,跑的深一点,视情况而动。二是门将要果断出击,否则等你反应过来后卫无能为力的时候再出击就晚了,现在的门将出击反应变迟钝了,速度变慢了,出击要趁早。

业余级都是不怎么会玩的。情怀玩家一般在专家级和世界级晃悠,虽然比例仍不及实用玩家(追求实用性,其他全不顾)。他们靠着对足球的理解组织攻防,不轻易妥协(本人属于这一类),所以不会太差也很难太好。传奇级别基本上全都是实用玩家,不把实用性发挥到极致很难上传奇。所以要看淡输赢,为了上分而背叛自己玩一款足球游戏的初衷是不值得的。在哪个段位都是匹配到实力相近的对手,所以都一样,再往上就都是实用主义了。

一般QW党的边路技术都不怎么样,而且在排兵布阵上为了保证中路有足够的人数支撑QW战术,基本上边路是匮乏的。你可以多把球往两边分,利用球场宽度。这样他布置的有利于QW的球员站位就能被稀释掉一部分。

哦对了,看到有埃托奥也要小心,一半可能是QW(另一半可能是传控),这种和伊布那种QW风格还不一样。这种一般靠速度,球到脚下很少带,因为他知道夜长梦多,他知道埃托奥身体薄,所以很快会射门。你利用他很快会射门这点就好防多了,这种就看你会不会疏忽,只要记住对方一定会马上射门,基本上就不会被进冤球。

禁区内对面的苏亚、伊布、梅西这样的高盘带球员拿球要注意原地贴着你的后卫转身,否则一转过去就面对守门员。提前预判方向是一方面,也可以用高加速的中卫,因为附着力强一些。这一点上W贝内比W狐媚还好用。被一个QW党进这样的球是很冤的,还会助长对方的自以为是。

QW党在落后的情况下会加大QW的使用频率,因为在他眼里QW最简单粗暴,的确也是这样。所以你领先就得倍加小心对方突发冷箭。这时要注意让后卫在自己的位置,提前做好准备;也可以多控球,让他焦急、懊恼,因为连起脚QW的机会都变得奢侈了。QW党性情暴躁,这种情况下如果你没按=他多半会骂你两句,到时记得回他一句:QW真的不行。

以上是小编为大家整理的FIFAOnline3的具体内容,你的耐心观看就是对小编最大的支持。如果大家想了解更多游戏活动与游戏攻略,请持续关注本站。更多精彩内容,尽在jb51游戏频道!
本文标题:天真遇到现实分集介绍-Animation 动画介绍和实现
本文地址: http://www.61k.com/1094701.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1