Android 6种动画详解

第一步:写xml
在layout布局文件中建一个xml
    <ImageView 
        android:id="@+id/iv_img1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/a1"
        />
在资源文件中建一个anim文件夹来放这些xml(如:alpha.xml)
第一种:alphaAnimation(透明度渐变动画)
<?xml version="1.0" encoding="utf-8"?>
<!-- 
    android:fromAlpha="1.0"   //从哪个透明度开始
    android:toAlpha="0.3"        //到哪个透明度结束
    android:duration="2000"    //执行时间
    android:fillAfter="true"       //保持执行之后的状态
    android:fillBefore="true"   //保持执行之前的状态
    android:repeatCount="3"   //重复次数
    android:repeatMode="reverse"  //重复模式
 -->
<alpha 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1.0"   
    android:toAlpha="0.3"
    android:duration="2000"
    android:fillEnabled="true"
    android:fillAfter="true"
    android:fillBefore="true"
    >


</alpha>




第二种:rotateAnimation(旋转动画)
(如:rotate.xml)
<?xml version="1.0" encoding="utf-8"?>


<!-- 
    android:fromDegrees="0"   //从几度开始旋转
    android:toDegrees="-200"  //旋转多少度
    android:pivotX="50%"          //以自己为中心
    android:pivotY="50%"
    android:duration="5000"     //执行时间
 -->


<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="-200"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="5000"
    >
       
</rotate>


第三种:scaleAnimation(缩放动画)
(如:scale.xml)
<?xml version="1.0" encoding="utf-8"?>


<!-- 
   android:fromXScale="1.0"   //从x轴开始缩放的倍数
   android:toXScale="2.0"        //到x轴结束的倍数
   android:fromYScale="1.0"   //从y轴开始缩放的倍数
   android:toYScale="2.0"        //到y轴结束的倍数
   android:duration="5000"     //执行的时间
   android:pivotX="50%"          //以图片自己为中心缩放
   android:pivotY="50%"
 -->


<scale 
    xmlns:android="http://schemas.android.com/apk/res/android"
   android:fromXScale="1.0"
   android:toXScale="2.0"
   android:fromYScale="1.0"
   android:toYScale="2.0"
   android:duration="5000"
   android:pivotX="50%"
   android:pivotY="50%"
   
    >
</scale>




第四种:translateAnimation(移动动画)
(如:translate.xml)
<?xml version="1.0" encoding="utf-8"?>


<!-- 
   android:fromXDelta="0"    //从x轴点的坐标开始
    android:toXDelta="200"   //到x轴点的坐标结束
    android:fromYDelta="0"   //从y轴点的坐标开始
    android:toYDelta="200"   //从y轴点的坐标结束
    android:duration="5000"  //执行时间


 -->
<translate 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="200"
    android:fromYDelta="0"
    android:toYDelta="200"
    android:duration="5000"
    >
</translate>


第五种:setAnimation(set集合动画)
(如:set.xml)
<?xml version="1.0" encoding="utf-8"?>
<set
      xmlns:android="http://schemas.android.com/apk/res/android" >


   <rotate 
    android:fromDegrees="0"
    android:toDegrees="180000"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="5000"
    >
       
</rotate>
    <translate 
    android:fromXDelta="0"
    android:toXDelta="200"
    android:fromYDelta="0"
    android:toYDelta="200"
    android:duration="5000"
    >
</translate>
</set>


第二步:在Activity中调用


   //按钮的点击事件
    public void click(View view){
    //透明动画
    Animation alphaanimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
    //缩放动画
    Animation scaleanimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale);
    //移动动画
      Animation translateanimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate);
    //旋转动画
    Animation rotateateanimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
    //set动画集合
      Animation setateanimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.set);
    //执行动画
    im_img.setAnimation(setateanimation);
   
        }






frame贞动画
第一步:在drawable资源文件中建一个xml


<?xml version="1.0" encoding="utf-8"?>
<animation-list
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
       <item android:drawable="@drawable/a1" android:duration="2000" />
       <item android:drawable="@drawable/a2" android:duration="2000" />
       <item android:drawable="@drawable/a3" android:duration="2000" />
       <item android:drawable="@drawable/a4" android:duration="2000" />
       <item android:drawable="@drawable/a5" android:duration="2000" />
       <item android:drawable="@drawable/a6" android:duration="2000" />
       <item android:drawable="@drawable/a7" android:duration="2000" />
       <item android:drawable="@drawable/a8" android:duration="2000" />
       <item android:drawable="@drawable/a9" android:duration="2000" />
</animation-list>


第二步:在layout布局文件中写
    <ImageView 
        android:id="@+id/im_img2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/frame"
        />


第三步:在Activity中调用
    AnimationDrawable  drawable=(AnimationDrawable) im_img2.getBackground();
        //开始动画
    drawable.start();
    //结束动画
        drawable.stop();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值