android 动画
android动画
动画分为两类,传统动画、属性动画
传统动画
传统动画又分为帧动画、补间动画
帧动画
是通过在特定帧显示不同图片,使连贯起来在视觉上看起来像动画。
有点类似与gif
将图片资源放入到drawable文件夹
在drawable下新建资源文件 drawable1.xml 类型:animation-list
1 | <?xml version="1.0" encoding="utf-8"?> |
android:drawable 指的是要显示的图片资源
android:duration: 图片显示时长
还有一些其它参数
在Activity中调用1
2
3
4imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.image);
AnimationDrawable drawable = (AnimationDrawable) imageView.getDrawable();
drawable.start();
这样就可以让四张图片动起来了。
这样就是一个帧动画的简单样例
补间动画
补间动画分为四种类形式: alpha(淡入淡出),translate(位移),scale(缩放大小),rotate(旋转)
其实就是四种动画效果,我们选择单独选择一种、也可以同时使用几种。
补间动画可以通过xml、或者代码形式实现。
xml实现补间动画
alpha
在res/anim下新建文件alpha_anime.xml1
2
3
4
5
6
7
8
9<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="1000"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:repeatMode="restart"
android:repeatCount="infinite"
/>
在Activity中1
2
3Animation animation = AnimationUtils.loadAnimation(this.getApplicationContext(), R.anim.alpha_anime);
ImageView alphaImage = findViewById(R.id.alphaImageView);
alphaImage.startAnimation(animation);
这样就能实现图片渐隐的无限循环效果
scale
在res/anim下新建文件scale.xml1
2
3
4
5
6
7
8
9
10
11<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0"
android:repeatMode="restart"
android:repeatCount="infinite"
/>
translate
1 | <translate xmlns:android="http://schemas.android.com/apk/res/android" |
rotate
1 | <rotate xmlns:android="http://schemas.android.com/apk/res/android" > |