package suda.sudamodweather.widget.weather; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.view.SurfaceHolder; /** * Created by ghbha on 2016/5/16. */ public class FogView extends BaseAnimView { public FogView(Context context, int backColor) { super(context,backColor); } @Override protected void init() { super.init(); paint = new Paint(); paint.setStrokeWidth(getFitSize(3)); paint.setAntiAlias(true); paint.setColor(Color.WHITE); paint.setAlpha(70); } @Override protected void drawSub(Canvas canvas) { if (radius > MAX) { deltaRadius = -deltaRadius; } if (radius < MIN) { deltaRadius = -deltaRadius; } RectF rect1 = new RectF(-radius, -radius, radius, radius); RectF rect2 = new RectF(windowWidth - radius, windowHeight - radius, windowWidth + radius, windowHeight + radius); canvas.drawArc(rect1, 0, 360, false, paint); canvas.drawArc(rect2, 0, 360, false, paint); } @Override protected void reset() { radius = MIN; } @Override protected void animLogic() { radius += deltaRadius; } @Override protected int sleepTime() { return 50; } @Override public void surfaceCreated(SurfaceHolder holder) { startAnim(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } @Override public void run() { doLogic(); } /////////////////////////////////////////////////////// Paint paint; //圆最小半径 private float MIN = getFitSize(1080); //圆最大半径 private float MAX = MIN + getFitSize(80); //圆半径 private float radius = MIN; private int deltaRadius = 1; }