看了爱哥的博客,感觉自定义控件根本就不会没法过了。转过来膜拜膜拜
地址:http://blog.csdn.net/aigestudio/article/details/41212583
一、问题:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
}
当设置一个画笔后,IDE警告:Avoid object allocations during draw/layout operations(preallocate and reuse instead)
即不建议在draw或layout的过程中去实例化对象!为啥?因为draw或layout过程有可能是一个频繁重复执行的过程,new是需要分配内存的,会很浪费内存。
二、知识点Paint
设置颜色setColor(),设置描边线条setStrokeWidth(),设置画笔样式setStyle()。
三、知识点Canvas
四、自定义一个半径从小到大不断变化的圆
原理:启动一个线程,不断重绘圆。调用invalidate()会自动重绘圆,在非UI线程中使用postInvalidate()。