Animation是一个用于View,Surfaces和其它对象实现动画效果的抽象类,其中常用的类是TranslateAnimation用于控制位置的改变

一下列出一些重要的属性和方法

Xml属性

android:duration:运行动画的时间

android:interpolator定义用于平滑动画运动的时间内插

android:repeatCount:定义动画重复的时间

方法:

set:RepeatCount(int):定义动画重复的时间

setRepeatMode(int):通过设置重复时间定义动画的行为

setStartOffsetlong):以毫秒为单位的动画运行前的延迟,一旦开始时间就达到了

Cancel():取消动画

hasStarted():判断动画是否已在运行

initialize(intwidth,intheight,intparentWidth,intparentHeight):初始化动画

reset():重置动画

Start()启动动画

其中还有一些常量

RESTART:重新运行

INFINITE:永无终止地运行

将动画用于指定的控件,所有继承自View的控件都有startAnimation(Animation)方法,通过调用此方法来应用动画于控件

AnimationUtils类介绍

为应用动画提供了通用的的方法,它有一个很重要的方法loadAnimation(Context,Animation)用于加载Animation的实例。

下面是一个实例源码下载

Android动画详细探究_第1张图片

Animationpage.xml是布局文件

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:padding="10dip"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<ImageViewandroid:id="@+id/pw"

android:background="@drawable/a"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginBottom="10dip"

/>

<Buttonandroid:id="@+id/login"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="26sp"

android:text="震荡"

/>

<ViewFlipperandroid:id="@+id/flipper"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:flipInterval="2000"

>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:textSize="26sp"

android:text="吴建强"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:textSize="26sp"

android:text="李秀婷"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:textSize="26sp"

android:text="张美静"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:textSize="26sp"

android:text="吴美音"/>

</ViewFlipper>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginBottom="5dip"

android:text="请选择你喜欢的人"

/>

<Spinnerandroid:id="@+id/spinner"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

<TextView

android:id="@+id/target"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="26sp"

android:text="java语言"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="20dip"

android:layout_marginBottom="5dip"

android:text="C#语言"/>

<Spinner

android:id="@+id/spinner1"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

Animlayout.xml是动画文件

<?xmlversion="1.0"encoding="utf-8"?>

<translatexmlns:android="http://schemas.android.com/apk/res/android"

android:fromXDelta="0"

android:toXDelta="10"

android:duration="1000"

android:interpolator="@anim/cycle_7"/>

。。。

主程序

packagewjq.WidgetDemo;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.view.animation.Animation;

importandroid.view.animation.AnimationUtils;

importandroid.view.animation.Transformation;

importandroid.view.animation.TranslateAnimation;

importandroid.widget.AdapterView;

importandroid.widget.ArrayAdapter;

importandroid.widget.Spinner;

importandroid.widget.ViewFlipper;

importandroid.widget.AdapterView.OnItemSelectedListener;

/**

*动画Animation示例

*@author记忆的永恒

*

*/

publicclassAnimationDemoextendsActivityimplementsOnClickListener,

OnItemSelectedListener{

privateViewv;

privateString[]mStrings={"向上","向右","穿越",

"旋转"};

privatestaticfinalString[]INTERPOLATORS={"加速","Decelerate",

"减速","左右","Overshoot",

"Anticipate/Overshoot","弹回"};

privateViewFlippermFlipper;

privateSpinnerspinner;

privateSpinnerspinner1;

privateArrayAdapter<String>aa;

privateArrayAdapter<String>aa1;

/*

*(non-Javadoc)

*

*@seeandroid.app.Activity#onCreate(android.os.Bundle)

*/

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

setContentView(R.layout.animationpage);

v=findViewById(R.id.login);

v.setOnClickListener(this);

mFlipper=(ViewFlipper)findViewById(R.id.flipper);

//反转

mFlipper.startFlipping();

spinner=(Spinner)findViewById(R.id.spinner);

aa=newArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,mStrings);

aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(aa);

spinner.setOnItemSelectedListener(this);

spinner1=(Spinner)findViewById(R.id.spinner1);

aa1=newArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,INTERPOLATORS);

aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner1.setAdapter(aa1);

spinner1.setOnItemSelectedListener(this);

}

@Override

publicvoidonClick(Viewv){

Animationshake=AnimationUtils.loadAnimation(this,R.anim.animlayout);

findViewById(R.id.pw).startAnimation(shake);

}

@Override

publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,

longid){

if(parent.getAdapter()==aa){

switch(position){

case0:

mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_up_in));

mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_up_out));

break;

case1:

mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_in));

mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_out));

break;

case2:

mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_in));

mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_out));

break;

default:

mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.hyperspace_in));

mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.hyperspace_out));

break;

}

}

else{

finalViewtarget=findViewById(R.id.target);

finalViewtargetParent=(View)target.getParent();

Animationanm=newTranslateAnimation(0.0f,targetParent

.getWidth()

-target.getWidth()

-targetParent.getPaddingLeft()

-targetParent.getPaddingRight(),0.0f,0.0f);

anm.setDuration(1000);

anm.setStartOffset(300);

anm.setRepeatMode(Animation.RESTART);

anm.setRepeatCount(Animation.INFINITE);

switch(position){

case0:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.accelerate_interpolator));

break;

case1:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.decelerate_interpolator));

break;

case2:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.accelerate_decelerate_interpolator));

break;

case3:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.anticipate_interpolator));

break;

case4:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.overshoot_interpolator));

break;

case5:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.anticipate_overshoot_interpolator));

break;

case6:

anm.setInterpolator(AnimationUtils.loadInterpolator(this,

android.R.anim.bounce_interpolator));

break;

}

target.startAnimation(anm);

}

}

@Override

publicvoidonNothingSelected(AdapterViewparent){

//TODOAuto-generatedmethodstub

}

}

====================================

学Android开发的前途和就业前景如何

Android相对其他操作系统具有的优势

详解本科通信工程专业就业前景如何

====================================


更多相关文章

  1. Android SDK23以上(包括23)无法使用httpclient的处理方法
  2. android 属性android:visibility及 view的setVisibility方法值的
  3. Android中同时选择日期和时间
  4. Android中使用animation的方法
  5. Android 开源动画框架:NineOldAndroids
  6. Android 开机动画分析
  7. Android禁止EditText自动弹出软键盘的方法及遇到问题

随机推荐

  1. 如何让父母与孩子一起成长?
  2. link标签和script标签跑到body下面,网页顶
  3. HTML高级标签之窗口分帧(前台界面演示)
  4. easyui-tree根据叶子节点获取父节点值(N
  5. HTML中的attribute和property的区别
  6. 夜灵的Html笔记Day04——CSS3basic
  7. 网页局部打印
  8. Html5的datetime-local控件
  9. 缓存js / css资源以使我的项目脱机工作
  10. 使用html5中的base64数据播放音频。