笔记100--摘自爱哥01

看了爱哥的博客,感觉自定义控件根本就不会大哭没法过了。转过来膜拜膜拜奋斗地址: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)

笔记100--摘自爱哥01_第1张图片

即不建议在draw或layout的过程中去实例化对象!为啥?因为draw或layout过程有可能是一个频繁重复执行的过程,new是需要分配内存的,会很浪费内存。

二、知识点Paint

设置颜色setColor(),设置描边线条setStrokeWidth(),设置画笔样式setStyle()。

三、知识点Canvas

四、自定义一个半径从小到大不断变化的圆

原理:启动一个线程,不断重绘圆。调用invalidate()会自动重绘圆,在非UI线程中使用postInvalidate()。




你可能感兴趣的:(笔记100--摘自爱哥01)