最近在项目中有用到雷达扫描动画,这个效果也常被用于扫描或定位等事件,通过一个小Demo对此进行一下总结。
动画截图如下:
Android的动画分两类:一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。另一类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
此处的基本思想是通过自定义雷达View,不断刷新和绘制雷达View实现扫描Tween动画。
1. 首先自定义雷达View,RadarView.java代码如下:
package com.example.radar;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.SweepGradient;
import android.util.AttributeSet;
import android.view.View;
public class RadarView extends View{
private Paint circlePaint;//圆形画笔
private Paint linePaint;//线形画笔
private Paint sweepPaint;//扫描画笔
SweepGradient sweepGradient;//扇形渐变Shader
int degree = 0;
public RadarView(Context context){
super(context);
}
public RadarView(Context context, AttributeSet att){
super(context,att);
initPaint();
}
/**
* @param
* @return void
* @Description //初始化定义的画笔
*/
private void initPaint(){
Re