一、 淡入淡出动画
淡入淡出动画时控制显示元素的后名都发生渐变,产生动画效果。
效果图:
首先第一步,将一张图片放到 drawable 目录中
第二步:
res 下 New / Android resource directory
在anim目录下,新建 anim_alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration = "3000"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:repeatCount = "-1"
android:repeatMode="reverse"/>
<!--duration — 播放时间的毫秒数-->
<!--fromAlpha — 透明度的变化值 起始值 [0.0 ~ 1.0]-->
<!--toAlpha — 透明度的变化值 终点值 [0.0 ~ 1.0]-->
<!--repeatCount — 表示重复次数,负数表示无限循环-->
<!--repeatMode — 表示重复模式-->
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ly_main"
tools:context=".MainActivity">
<!--将背景设置为自定义放入资源的xml文件夹-->
<ImageView
android:id="@+id/img_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_anim"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 为 UI 组件实现动画
Animation animation = AnimationUtils.loadAnimation(this,R.anim.anim_alpha);
ImageView imageView = findViewById(R.id.img_view);
imageView.startAnimation(animation);
}
}
二丶位移动画
位移动画是控制元素的位置发生渐变,产生动画效果
属性表:
在anim目录下,新建:anim_translate.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="200"
android:fromYDelta="0"
android:toYDelta="200"
android:duration="2000"
android:repeatCount="-1"
android:repeatMode="reverse"/>
activity_main.xml 与 MainActivity.java 代码与第一个例子的一模一样
三丶缩放动画
缩放动画是控制元素的大小发生渐变,产生动画效果
效果图:
属性值:
在anim目录下,新建:anim_scale.xml
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"/>
acitivity_main.xml 与 MainActivity.java 与 上面例子一致
四丶旋转动画
旋转动画时控制显示元素的旋转状态发生渐变,产生动画效果。
效果图:
属性值:
在anim目录下,新建:anim_rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:visible="true"
android:duration="2000"
android:repeatCount = "-1"/>
主xml与主java不变
五丶混合使用
在以上四种补间动画可以组合使用,以实现灵活多样的动画效果。
效果图:
在anim目录下,新建:anim_set.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toYScale="1.0"
android:toXScale="1.0"
android:duration="2000"/>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:visible="true"
android:duration="1500"
android:repeatCount = "-1"/>
<alpha
android:duration = "3000"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:repeatCount = "-1"
android:repeatMode="reverse"/>
</set>
activity_main 与 MainActivity.java 与 上面的例子一样
属性表为: