补间动画一共分为4种
1 alpha 透明度
2 rotate 旋转
3 scale 缩放
4 translate 平移
一 alpha 透明度
1 步骤
step1 创建动画文件
res 文件夹下创建文件夹,在此new一个animation resource file
<alpha> 透明度标签
fromAlpha toAlpha:透明度从哪到哪 (0 表示完全透明,1 表示完全不透明)
duration:总共花费多少毫秒的时间
step2 xml文件
<ImageView>
step3 java文件
1 点击图片时,获取动画 (anim是创建的文件夹,alpha是动画文件的名字)
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
2 把动画设置到图片上
imageView.startAnimation(animation);
2 代码
alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0"
android:toAlpha="1"
android:duration="2000"
/>
</set>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/pic"
android:src="@drawable/big"
android:adjustViewBounds="true"
android:maxHeight="400dp"
android:maxWidth="200dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ImageView>
</RelativeLayout>
MainActivity.java
package com.example.myanimbujian;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView= findViewById(R.id.pic);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取动画
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
//把动画设置到图片上
imageView.startAnimation(animation);
}
});
}
}
二 rotate 旋转
1 步骤
step1 创建动画文件
res 文件夹下创建文件夹,在此new一个animation resource file
<rotate> 旋转标签
fromDegrees toDegrees:从哪一个角度开始到哪一个角度
pivotX pivotY:旋转的支点(百分比)
duration:总共花费多少毫秒的时间
step2 xml文件
<ImageView>
step3 java文件
1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,rotate是动画文件的名字)
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate);
2 把动画设置到图片上
imageView.startAnimation(animation);
2 代码
rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate android:fromDegrees="0"
android:toDegrees="150"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
/>
</set>
activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)
效果
三 scale 缩放
1 步骤
step1 创建动画文件
res 文件夹下创建文件夹,在此new一个animation resource file
<scale> 旋转标签
fromXScale fromYScale:从多少倍开始缩放
toXScale toYScale:到多少倍缩放结束
pivotX pivotY:旋转的支点(百分比)
duration:总共花费多少毫秒的时间
step2 xml文件
<ImageView>
step3 java文件
1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,scale是动画文件的名字)
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale);
2 把动画设置到图片上
imageView.startAnimation(animation);
2 代码
scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1"
android:fromYScale="1"
android:toXScale="2"
android:toYScale="0.5"
android:pivotY="50%"
android:pivotX="20%"
android:duration="2000"
/>
</set>
activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)
效果
四 translate 平移
1 步骤
step1 创建动画文件
res 文件夹下创建文件夹,在此new一个animation resource file
<translate> 旋转标签
fromXDelta fromXDelta:从哪开始平移
toXDelta toXDelta:到哪结束平移
duration:总共花费多少毫秒的时间
step2 xml文件
<ImageView>
step3 java文件
1 点击图片时,通过动画文件获取到动画(anim是创建的文件夹,translate是动画文件的名字)
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate);
2 把动画设置到图片上
imageView.startAnimation(animation);
2 代码
translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="400"
android:toYDelta="400"
android:duration="2000"
/>
</set>
activity_main.xml 和 java 的代码同 alpha 透明度 (改一下java文件里动画文件名字)
效果