上一篇学习用硬编码直接进行对动画效果进行设置(Android中的动画效果学习之---Tween动画(硬编码方法创建)),今天学习一下使用XML文件进行配置动画效果:
其中里面主要参数说明已经在上一篇讲过了,接下来进行设置动画的具体步骤:
第一步:在项目的res文件下面新建一个文件夹名字是anim 【注意】这个名字必要要是anim
第二步: 在anim文件夹下面,新建新的XMl文件 在xml文件中具体设置动画效果
第三步: 在Activity中 使用AnimationUtils.loadAnimation(Demo_Animation_second.this, R.anim.xxxxx);进行获取
具体看下面的配置代码:
base_alpha配置:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="3000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
base_rotate配置:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<rotate
android:duration="3000"
android:fromDegrees="0.0"
android:pivotX="80%"
android:pivotY="80%"
android:toDegrees="180" />
</set>
base_scale配置:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<scale
android:duration="3000"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="80%"
android:pivotY="80%"
android:toXScale="10.0"
android:toYScale="10.0" />
</set>
base_translate配置:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:fromXDelta="0.0"
android:fromYDelta="0.0"
android:toXDelta="10.0"
android:toYDelta="10.0"
android:duration="3000"/>
</set>
Demo Activity源代码如下:
package com.android.animation;
import com.android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
public class Demo_Animation_second extends Activity {
// 定义四个按钮,分别对用四种动画效果操作
private Button alpha, roate, scale, translate;
// 声明ImageView组件
private ImageView animation_test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animation);
animation_test = (ImageView) this.findViewById(R.id.test_animation);
alpha = (Button) this.findViewById(R.id.alpha);
roate = (Button) this.findViewById(R.id.roate);
scale = (Button) this.findViewById(R.id.scale);
translate = (Button) this.findViewById(R.id.translate);
// 为按钮组件添加监听事件
alpha.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 使用AnimationUitls工具类进行常见动画,使用到XML配置文件
Animation alphaAnimation = AnimationUtils.loadAnimation(
Demo_Animation_second.this, R.anim.base_alpha);
// 为图片添加效果,开始动画
animation_test.setAnimation(alphaAnimation);
}
});
roate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 使用AnimationUitls工具类进行常见动画,使用到XML配置文件
Animation roateAnimation = AnimationUtils.loadAnimation(
Demo_Animation_second.this, R.anim.base_rotate);
roateAnimation.setDuration(3000);
// 为图片添加效果,开始动画
animation_test.setAnimation(roateAnimation);
}
});
scale.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 使用AnimationUitls工具类进行常见动画,使用到XML配置文件
Animation scaleAnimation = AnimationUtils.loadAnimation(
Demo_Animation_second.this, R.anim.base_scale);
// 为图片添加效果,开始动画
animation_test.setAnimation(scaleAnimation);
}
});
translate.setOnClickListener(new OnClickListener() {
/**
* 位置变化
*/
@Override
public void onClick(View v) {
// 使用AnimationUitls工具类进行常见动画,使用到XML配置文件
Animation translateAnimation = AnimationUtils.loadAnimation(
Demo_Animation_second.this, R.anim.base_translate);
// 为图片添加效果,开始动画
animation_test.setAnimation(translateAnimation);
}
});
}
}
截图效果:
上面两个截图分别是 alpha和rotate的效果
下面两个截图分别是 scale 和translate的效果