android动画之补间动画

转载 2016年05月31日 15:54:40
补间动画(移动补间动画,缩放补间动画,旋转补间动画,透明补间动画):


1.移动补间动画(TranslateAnimation):
指定移动的绝对位置(以自己的左上角为参照点):
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, 500);
translateAnimation.setDuration(5000);
imageview.startAnimation(translateAnimation);
2.指定移动的相对位置(相对父控件):
TranslateAnimation translateAnimation = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT,
0.0f,
Animation.RELATIVE_TO_PARENT,
0.0f,
Animation.RELATIVE_TO_PARENT,
0.0f,
Animation.RELATIVE_TO_PARENT,
0.5f);
translateAnimation.setFillAfter(true);//停留在动画最后一帧,不指定的话,动画播放完毕会回到初始状态
translateAnimation.setDuration(5000);
imageview.startAnimation(translateAnimation);


3.指定移动的相对位置(相对自己)
      
TranslateAnimation translateAnimation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF,
0.0f,
Animation.RELATIVE_TO_SELF,
0.0f,
Animation.RELATIVE_TO_SELF,
0.0f,
Animation.RELATIVE_TO_SELF,
4.0f);
translateAnimation.setFillAfter(true);
translateAnimation.setDuration(5000);
imageview.startAnimation(translateAnimation);
         


4.在xml中定义动画:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="5000"
    android:fromXDelta="0" 
    android:toXDelta="0"
    android:fromYDelta="0"
    android:toYDelta="200"
    android:fillAfter="true">


</translate>


<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="5000"
    android:fromXDelta="0%" 
    android:toXDelta="0%"
    android:fromYDelta="0%"
    android:toYDelta="200%"
    android:fillAfter="true">


</translate>




<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="5000"
    android:fromXDelta=“0%p” 
    android:toXDelta=“0%p”
    android:fromYDelta=“0%p”
    android:toYDelta="200%p”
    android:fillAfter="true">


</translate>




TranslateAnimation translateAnimation = (TranslateAnimation) AnimationUtils.loadAnimation(this, R.anim.anim_translate);
imageview.startAnimation(translateAnimation);


2.缩放补间动画:
以自己的左上角为圆心缩放:
ScaleAnimation scaleAnimation = new ScaleAnimation(

1.0f,

1.5f, 

1.0f,

1.5f);
scaleAnimation.setFillAfter(true);
scaleAnimation.setDuration(5000);
imageview.startAnimation(scaleAnimation);


xml:


<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:toXScale="1.5"
    android:fromYScale="1.0"
    android:toYScale="1.5"
 >


</scale>


以自己的中心点为圆心进行缩放:
ScaleAnimation scaleAnimation = new ScaleAnimation(
1.0f,
1.5f,
1.0f,
1.5f,
Animation.RELATIVE_TO_SELF,
0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
scaleAnimation.setFillAfter(true);
scaleAnimation.setDuration(5000);
imageview.startAnimation(scaleAnimation);


xml:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:toXScale="1.5"
    android:fromYScale="1.0"
    android:toYScale="1.5"
    android:pivotX="50%"
    android:pivotY="50%" >


</scale>




以父控件为参照:
ScaleAnimation scaleAnimation = new ScaleAnimation(
1.0f,
1.5f,
1.0f,
1.5f,
Animation.RELATIVE_TO_PARENT,
0.5f,
Animation.RELATIVE_TO_PARENT,
0.5f);
scaleAnimation.setFillAfter(true);
scaleAnimation.setDuration(5000);
imageview.startAnimation(scaleAnimation);


xml:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:toXScale="1.5"
    android:fromYScale="1.0"
    android:toYScale="1.5"
    android:pivotX="50%p"
    android:pivotY="50%p" >


</scale>


如果imageview在父控件中间,上面两种设置的效果并不一样,后面这个中心点并不在父控件中心,它是以imageview的左上角为参照,偏移父控件宽高的一半,这时候,动画的中心点并不在父控件的中心



3.旋转补间动画
以左上角为原点旋转:
RotateAnimation rotateAnimation = new RotateAnimation(
0,
180);
rotateAnimation.setFillAfter(true);
rotateAnimation.setDuration(5000);
imageview.startAnimation(rotateAnimation);
以自己的中心为原点旋转:
RotateAnimation rotateAnimation = 
new RotateAnimation(
0,
180,
Animation.RELATIVE_TO_SELF,
0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
rotateAnimation.setFillAfter(true);
rotateAnimation.setDuration(5000);
imageview.startAnimation(rotateAnimation);




4.透明补间动画:


Animation animation = new AlphaAnimation(1f,0.1f);
animation.setFillAfter(true);
animation.setDuration(5000);
imageview.startAnimation(animation);








5.多个动画同时进行:
AnimationSet set = new AnimationSet(false);
AlphaAnimation alphaAnimation = new AlphaAnimation(1f,0.1f);
alphaAnimation.setDuration(5000);
set.addAnimation(alphaAnimation);

TranslateAnimation translateAnimation = new TranslateAnimation(0,0,0,300);
translateAnimation.setDuration(5000);
set.addAnimation(translateAnimation);

set.setFillAfter(true);

imageview.startAnimation(set);


xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >


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


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


</set>




AnimationSet animation = (AnimationSet) AnimationUtils.loadAnimation(this, R.anim.anim_set);
animation.setFillAfter(true);
imageview.startAnimation(animation);

相关文章推荐

Android补间动画

  • 2016年05月08日 22:50
  • 1.26MB
  • 下载

android自定义补间动画

  • 2015年04月01日 19:46
  • 1.37MB
  • 下载

Android 补间动画Animation的实用应用

转载请注明: http://blog.csdn.net/sinat_30276961/article/details/49868409上一篇,我总结了补间动画的各种特性,并写了个小的应用来使用这些特...

Android 补间动画

  • 2015年08月23日 18:46
  • 4.11MB
  • 下载

Android补间动画demo及知识树

  • 2016年01月14日 21:28
  • 614KB
  • 下载

Android 补间动画使用记录

补间动画使用记录alpha 渐变xml

android补间动画

  • 2016年09月20日 00:44
  • 18.93MB
  • 下载

android之逐帧,补间动画详解。

在android的世界中有三种动画,它们就是逐帧动画,补间动画,属性 动画。接下来我就分别演示下三种动画的简单用法。各动画的定义: 逐帧动画:就是短时间切换图片,让人们肉眼看起来是连续的,其实就是播放...

Android中补间动画的基本使用

  • 2016年06月20日 11:03
  • 6.96MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android动画之补间动画
举报原因:
原因补充:

(最多只允许输入30个字)