您的位置:首页 > 移动开发 > Android开发

Android动画

2015-07-14 14:59 441 查看
一 旋转动画

1、定义一个ImageView

定义一个ImageView是为了装载图片,其中的图片将被rotate用来进行旋转,其他View亦可。

资源文件为

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/infoOperating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/operating"
android:scaleType="center">
</ImageView>
</LinearLayout>


ImageView infoOperatingIV = (ImageView)findViewById(R.id.infoOperating);


2、定义rotate旋转效果

在res/anim文件夹下新建tip.xml文件,内容如下

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="359"
android:duration="500"
android:repeatCount="-1"
android:pivotX="50%"
android:pivotY="50%" />
</set>


含义表示从0到359度开始循环旋转,0-359(若设置成360在停止时会出现停顿现象)度旋转所用时间为500ms,旋转中心距离view的左顶点为50%距离,距离view的上边缘为50%距离,即正中心,具体每个含义见下面的具体属性介绍。

初始化 :

Animation operatingAnim = AnimationUtils.loadAnimation(this, R.anim.tip);
LinearInterpolator lin = new LinearInterpolator();
operatingAnim.setInterpolator(lin);


开始旋转 :

if (operatingAnim != null) {
infoOperatingIV.startAnimation(operatingAnim);    //infoOperatingIV 图片id

}


停止旋转 :

if (operatingAnim != null) {
infoOperatingIV.startAnimation(operatingAnim);    //infoOperatingIV 图片id

}


二 , 渐变动画

首先是AlphaAnimation。alpha_anim.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="2000"
/>
</set>


alphaAnimation = AnimationUtils.loadAnimation(this.getContext(), R.anim.alpha_anim);


二 ,缩放动画 ScaleAnimation

scale_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="500"
/>
</set>


scaleAnimation = AnimationUtils.loadAnimation(this.getContext(), R.anim.scale_anim);


三,旋转动画 rotate_anim.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
/>
</set>


rotateAnimation = AnimationUtils.loadAnimation(this.getContext(), R.anim.rotate_anim);


四 ,平移动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="10"
android:toXDelta="100"
android:fromYDelta="10"
android:toYDelta="100"
/>
</set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: