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 CloudyView extends BaseAnimView { public CloudyView(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 / 2 - radius), -radius, (windowWidth / 2 + radius), radius); RectF rect3 = new RectF(windowWidth - radius, -radius, windowWidth + radius, radius); canvas.drawArc(rect3, 0, 360, false, paint); canvas.drawArc(rect2, 0, 360, false, paint); canvas.drawArc(rect1, 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(560); //圆最大半径 private float MAX = MIN + getFitSize(60); //圆半径 private float radius = MIN; private int deltaRadius = 1; }