逐帧动画
方法一,在xml中设置
1.先将图片加入drawable
2.在drawable中新建xml,设置每一帧的图片和时间
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:drawable="@drawable/frame_1"android:duration="100" /><itemandroid:drawable="@drawable/frame_2"android:duration="100" /><itemandroid:drawable="@drawable/frame_3"android:duration="100" />
</animation-list>
3。在主布局中添加view并且背景设置为刚才创建的xml
<Viewandroid:id="@+id/view"android:layout_width="300dp"android:layout_height="300dp"android:background="@drawable/drawables"tools:ignore="MissingConstraints"tools:layout_editor_absoluteX="55dp"tools:layout_editor_absoluteY="103dp"></View>
4.onclick中代码中加入
private AnimationDrawable animationDrawable;View view = findViewById(R.id.view);animationDrawable = (AnimationDrawable) view.getBackground();//启动
animationDrawable.start();//暂停
animationDrawable.stop();
//只演示一次
animationDrawable.setOneShot(true);
视图动画
Activity公共部分
public void onClick(View view){switch (view.getId()){case R.id.viewAlphaAnimation:Animation animation= AnimationUtils.loadAnimation(this,R.anim.alpha);view.startAnimation(animation);break;}}
1.透明度动画
1.先在res资源中建立一个anim文件夹,注意Android Studio 不允许添加除anim,drawable,layout,values,xml,raw之外的资源文件夹。
2.建立一个新的文件
3.添加相关信息
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alphaandroid:duration="1000"android:fromAlpha="1.0"android:toAlpha="0.1"/>
</set>
缩放动画
xml文件
<?xml version="1.0" encoding="utf-8"?>
<!--android:fillAfter="true":缩放后停止android:duration="1000":时间基准点,基准线是本控件的左边界为主,p相对于父控件的左边界android:pivotX=""android:pivotY=""-->
<set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true">
<scaleandroid:fromXScale="1.0"android:toXScale="2.0"android:fromYScale="1.0"android:toYScale="1.0"android:pivotX="100%"android:pivotY="0"/>
</set>
位移动画
<?xml version="1.0" encoding="utf-8"?>
<!--android:fromXDelta 相对于左边界的偏移-->
<set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true">
<translateandroid:fromXDelta="0"android:toXDelta="100%"android:fromYDelta="0"android:toYDelta="0"/>
</set>