SoFunction
Updated on 2025-03-08

Android programming simply realizes radar scanning effect

This article describes the simple implementation of radar scanning effects by Android programming. Share it for your reference, as follows:

I saw an article about radar scanning in eoe, and then read it. It was very simple, but I felt that there were still many places to optimize. I posted it below

package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class RadarView extends FrameLayout {
 private int viewSize = 500;
 private Paint mPaintLine;
 private Paint mPaintSector;
 private boolean isStart = false;
 private ScanThread mThread;
 private int start = 0;
 private final int paintWidth = 10;
 public RadarView(Context context) {
  super(context);
  init();
 }
 public RadarView(Context context, AttributeSet attrs) {
  super(context, attrs);
  init();
 }
 private void init() {
  initPaint();
  mThread = new ScanThread();
  setBackgroundColor();
 }
 private void initPaint() {
  mPaintLine = new Paint();
  (paintWidth);
  (true);
  ();
  (0xffff0000);
  mPaintSector = new Paint();
  (0x9D00ff00);
  (true);
 }
 public void setViewSize(int size) {
   = size;
  mShader = new SweepGradient(viewSize >> 1, viewSize >> 1, , );
  setMeasuredDimension(viewSize, viewSize);
 }
 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  setMeasuredDimension(viewSize, viewSize);
 }
 public void start() {
  ();
  isStart = true;
 }
 public void stop() {
  if (isStart) {
   ();
   isStart = false;
  }
 }
 private Shader mShader = new SweepGradient(viewSize >> 1, viewSize >> 1, , );
 private Matrix matrix = new Matrix();
 @Override
 protected void onDraw(Canvas canvas) {
  (canvas);
  int halfRadaSize = viewSize >> 1;
  (halfRadaSize, halfRadaSize, halfRadaSize >> 1, mPaintLine);
  (halfRadaSize, halfRadaSize, halfRadaSize - (paintWidth >> 1), mPaintLine);
  (halfRadaSize, 0, halfRadaSize, viewSize, mPaintLine);
  (0, halfRadaSize, viewSize, halfRadaSize, mPaintLine);
  (mShader);
  (matrix);
  (halfRadaSize, halfRadaSize, halfRadaSize - paintWidth, mPaintSector);
 }
 protected class ScanThread extends Thread {
  int halfRadaSize = viewSize >> 1;
  @Override
  public void run() {
   while (isStart) {
    start = start + 2;
    ();
    (start, halfRadaSize, halfRadaSize);
    postInvalidate();
    try {
     (10);
    } catch (InterruptedException e) {
     ();
    }
   }
  }
 }
}

I hope this article will be helpful to everyone's Android programming design.