视图动画

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

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

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

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

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

               视图动画_第1张图片

   一.使用xml布局的形式

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




    
    

    

    

   2.布局xml




    

   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);
    }
}






你可能感兴趣的:(学习交流,视图动画)