十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
自学了android有几个月了,跟着网上的节奏,应该早点写些博客来提高自己的水准的。但苦于技术水准始终不自信(也是不过关的结果吧),就一直只是将自己学习过程中的问题和重要的知识点写在自己的笔记文档中。
创新互联建站主要从事网站制作、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务滨江,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220但,总感觉一个人写下来成就感还是欠缺了那么一些,而且有些问题及解答方法抛出来,是有可能得到更多好的反馈及解决方案的。于是,本着不作不会死的心态,一步一步在技术成长的道路前行——>这篇博客就是其中一步!
若博客中有些技术知识点有误或者有更优化的解答方案,还望各位小伙伴多多指出。
以下是正题了:
目标:利用SurfaceView实现一个简单的计时器
图示:
描述:1.利用SurfaceView来实现计时功能,同时不断将圆弧画满;2.点击按钮可以停止计时;
重点:
1.自定义SurfaceView中针对SurfaceHolder.CallBack的三个方法进行覆写;
2.通过surfaceHolder.lockCanvas()在新开的线程中得到canvas对象,从而进行图形和时间文字的绘制;
3.通过设置flag值,从而控制在线程run()方法中逻辑代码的执行;
重要部分代码:
public TestView(Context context) { super(context); surfaceHolder = getHolder(); surfaceHolder.addCallback(this); countThread = new CountThread(surfaceHolder); } public TestView(Context context, AttributeSet attributeSet) { super(context, attributeSet); surfaceHolder = getHolder(); surfaceHolder.addCallback(this); countThread = new CountThread(surfaceHolder); }