新建CircleView继承自View
public class CircleView extends View {
Paint mPaint;
int radius;
Boolean increase=true;
public CircleView(Context context) {
super(context);
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint=new Paint();
new Thread(new Runnable() {
@Override
public void run() {
while (true)
{
if(increase)
{
radius+=5;
}else {
radius-=5;
}
if(radius==200||radius==0)
{
increase=!increase;
}
postInvalidate();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
// public CircleView(Context context, AttributeSet attrs, int defStyleAttr) {
// super(context, attrs, defStyleAttr);
// }
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int centre=getWidth()/2;
mPaint.setColor(Color.GREEN);
mPaint.setAntiAlias(true);
mPaint.setStrokeWidth(radius/2);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(centre,centre,radius,mPaint);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
效果是个变化大小的圆环,在构造方法里开启线程改变半径
调用postinvalidate(),方法,此方法会调用ondraw方法,重新绘制View