视图动画

来源:互联网 发布:音悦台 for mac 编辑:程序博客网 时间:2024/05/17 01:20

    动画分为视图动画(View Animation),帧动画(Drawable Animation),属性动画(Property Animation)。

   View Animation: 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。

   Drawable Animation: 这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示 Drawable的resources,就像放幻灯片一样。

   Property Animation: 属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何 Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画。

   现在来简单介绍一下视图动画,先来看一下效果:

              

   一.使用xml布局的形式

   1.在res目录下创建一个目录,名为anim,然后在anim目录下新建一个xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="3000"    android:repeatMode="reverse"    android:fillBefore="false"    android:fillAfter="true">    <alpha        android:fromAlpha="1"        android:toAlpha="0.5">    </alpha>    <translate        android:fromXDelta="0"        android:fromYDelta="0"        android:toXDelta="500"        android:toYDelta="0">    </translate></set>
  2.布局xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:id="@+id/main2_image"        android:layout_width="100dp"        android:layout_height="120dp"        android:background="@drawable/huoying4"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true" /></RelativeLayout>
   3.Java代码

public class Main2Activity extends AppCompatActivity implements View.OnClickListener {    private ImageView image;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        initView();    }    private void initView() {        image= (ImageView) findViewById(R.id.main2_image);        image.setOnClickListener(this);    }    @Override    public void onClick(View v) {        Animation animation= AnimationUtils.loadAnimation(this,R.anim.myanimation);        image.startAnimation(animation);    }}
   二.使用代码的形式

public class Main2Activity extends AppCompatActivity implements View.OnClickListener {    private ImageView image;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        initView();    }    private void initView() {        image= (ImageView) findViewById(R.id.main2_image);        image.setOnClickListener(this);    }    @Override    public void onClick(View v) {        // 为false时表示使用自己的插值器,为true时表示使用系统默认的插值器        AnimationSet animation=new AnimationSet(true);        //参数1:开始时透明度的值,参数2:结束时透明的的值        AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);        TranslateAnimation translateAnimation=new TranslateAnimation(0,800,0,0);        //设置动画时间        alphaAnimation.setDuration(3000);        translateAnimation.setDuration(3000);        //将透明的动画添加到动画类中        animation.addAnimation(alphaAnimation);        //将移动的动画添加到动画类中        animation.addAnimation(translateAnimation);        image.startAnimation(animation);    }}






0 0
原创粉丝点击