动画

Animations动画

透明度变化
image = (ImageView) findViewById(R.id.image);
        //创建一个AnimationSet对象,参数为Boolean型,
        //true表示使用Animation的interpolator,false则是使用自己的
        AnimationSet animationSet = new AnimationSet(true);
//        设置动画完成不还原
        animationSet.setFillAfter(true);
        //创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明
        AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
        //设置动画执行的时间
        alphaAnimation.setDuration(2000);
        //将alphaAnimation对象添加到AnimationSet当中
        animationSet.addAnimation(alphaAnimation);
        //使用ImageView的startAnimation方法执行动画
        image.startAnimation(animationSet);
//        动画开始时,动画结束时,动画运行时
        animationSet.setAnimationListener(new Animation.AnimationListener() {
            public void onAnimationStart(Animation animation) {

            }

            public void onAnimationEnd(Animation animation) {
                Toast.makeText(MainActivity.this,"完成了",Toast.LENGTH_SHORT).show();
            }

            public void onAnimationRepeat(Animation animation) {

            }
        });

旋转

AnimationSet animationSet = new AnimationSet(true);
           //参数1:从哪个旋转角度开始
           //参数2:转到什么角度
           //后4个参数用于设置围绕着旋转的圆的圆心在哪里
           //参数3:确定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标
           //参数4:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
           //参数5:确定y轴坐标的类型
           //参数6:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
           RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
                  Animation.RELATIVE_TO_SELF,0.5f,
                  Animation.RELATIVE_TO_SELF,0.5f);
           rotateAnimation.setDuration(1000);
           animationSet.addAnimation(rotateAnimation);
           image.startAnimation(animationSet);

大小变化

AnimationSet animationSet = new AnimationSet(true);
           //参数1:x轴的初始值
           //参数2:x轴收缩后的值
           //参数3:y轴的初始值
           //参数4:y轴收缩后的值
           //参数5:确定x轴坐标的类型
           //参数6:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
           //参数7:确定y轴坐标的类型
           //参数8:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
           ScaleAnimation scaleAnimation = new ScaleAnimation(
                  0, 0.1f,0,0.1f,
                  Animation.RELATIVE_TO_SELF,0.5f,
                  Animation.RELATIVE_TO_SELF,0.5f);
           scaleAnimation.setDuration(1000);
           animationSet.addAnimation(scaleAnimation);
           image.startAnimation(animationSet);

平移

AnimationSet animationSet = new AnimationSet(true);
           //参数1~2:x轴的开始位置
           //参数3~4:y轴的开始位置
           //参数5~6:x轴的结束位置
           //参数7~8:x轴的结束位置
           TranslateAnimation translateAnimation =
              new TranslateAnimation(
                  Animation.RELATIVE_TO_SELF,0f,
                  Animation.RELATIVE_TO_SELF,0.5f,
                  Animation.RELATIVE_TO_SELF,0f,
                  Animation.RELATIVE_TO_SELF,0.5f);
           translateAnimation.setDuration(1000);
           animationSet.addAnimation(translateAnimation);
           image.startAnimation(animationSet);

逐帧动画

第一步:在drawerble里面创建一个xml文件,animation-list类型的

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/asd" android:duration="500"/>
    <item android:drawable="@mipmap/asdf" android:duration="500"/>
</animation-list>

第二步:
1.创建一个ImageView对象image
2.使用image的setBackgroundResourse方法获取到XML文档。
3.使用ImageView的对象image的getBackground()方法获取到AnimationDrawable对象
4.使用AnimationDrawable对象的start()方法开启动画;也可以使用AnimationDrawable的stop()方法关闭动画。

image = (ImageView) findViewById(R.id.image);
        image.setBackgroundResource(R.drawable.zhuzhen);
//        drawable = (AnimationDrawable) image.getDrawable();
        drawable = (AnimationDrawable) image.getBackground();
        drawable.start();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值