闲着无聊突然想起以前想过要画动态的五角星,然后计算五个点的时候感觉太烧脑了就改成画六角星了,不过实现过程都是一样的。
大概效果是这样
简单来说就是不停调用View.onDraw方法实现动态效果罢了
下载地址
http://download.csdn.net/detail/zlasdy/9862174
再补充几句,可能有人会纳闷为什么这个Demo里没有用到线程。
以往我们做动态的自定义View用到线程是因为onDraw方法里不要做耗时操作,比如多重for和bitmap等操作。这样就必须用线程来完成这些耗时操作然后再调用postInvalidate()通知View刷新界面。当然,用线程相对而言也比较好控制View的绘制过程。
最后提醒大家一句,如果要像这个Demo中这样做一定要控制好postInvalidate()的运行条件,不可以在onDraw中一直调用postInvalidate(),否则onDraw就会一直被调用,是很损耗性能的。