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

android复习路之tween动画篇

2016-12-11 20:42 337 查看
放大和缩小:

缩小的xml

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
>
<!-- from代表开始的缩放比例
toScale代表结束的缩放比例
pivo代表缩放中心位置
druation 代表播放时间
scale 为缩放标签
-->
</scale>

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

mian代码:

package com.example.zobject.tween;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
Animation animationLittle;//缩小动画
Animation animationBig;//放大动画
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button= (Button) findViewById(R.id.button);
Button button1= (Button) findViewById(R.id.button2);
final ImageView imageView= (ImageView) findViewById(R.id.imageView);
animationLittle= AnimationUtils.loadAnimation(this,R.anim.little);//绑定缩小动画的xml
animationBig=AnimationUtils.loadAnimation(this,R.anim.big);//绑定放大动画的xml
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView.startAnimation(animationLittle);//执行缩小动画
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView.startAnimation(animationBig);//执行放大动画
}
});
}
}
旋转动画:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotY="50%"
android:pivotX="50%"
android:duration="2000"
>
</rotate>

<rotate>标签为旋转节点  Tween一共为我们提供了3种动画渲染模式。
android:interpolator="@android:anim/accelerate_interpolator" 设置动画渲染器为加速动画(动画播放中越来越快)
android:interpolator="@android:anim/decelerate_interpolator" 设置动画渲染器为减速动画(动画播放中越来越慢)
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 设置动画渲染器为先加速在减速(开始速度最快 逐渐减慢)
如果不写的话 默认为匀速运动

android:fromDegrees="+360"设置动画开始的角度
android:toDegrees="0"设置动画结束的角度

这个动画布局设置动画将向左做360度旋转加速运动。

移动动画:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
移动动画标签
android:fromXDelta="0" 移动的初始位置android:toXDelta="320"移动后的位置android:fromYDelta="0"android:toYDelta="480"android:duration="2000"android:repeatCount="3" 重复次数 如果是永远用infinite ></translate>
透明动画
<?xml version="1.0" encoding="utf-8"?>
<alpha  xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:repeatCount="infinite"
android:duration="2000">
</alpha>

<alpha>标签为alpha透明度节点
android:fromAlpha="1.0" 设置动画起始透明度为1.0 表示完全不透明
android:toAlpha="0.0"设置动画结束透明度为0.0 表示完全透明
也就是说alpha的取值范围为0.0 - 1.0 之间
动画合集
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/accelerate_interpolator"
android:fromDegrees="+360"
android:toDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
android:repeatCount="infinite"
/>
<alpha  android:fromAlpha="1.0"
android:toAlpha="0.0"
android:repeatCount="infinite"
android:duration="2000">
</alpha>
<translate
android:fromXDelta="0"
android:toXDelta="320"
android:fromYDelta="0"
android:toYDelta="480"
android:duration="2000"
android:repeatCount="infinite"
/>
</set>
注:用tween动画的时候需要在res下面创建一个anim文件夹在anim中写动画xml,缩放动画scale,
9f34
旋转动画rotate ,移动动画translate,透明渐变动画alpha,动画合集set。代码中使用动画的方式在第一个旋转动画中有注释,写法都是一样的。由于是动画效果不好放图就不放了。效果是都可以实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息