美文网首页
自定义view-只需要这几步

自定义view-只需要这几步

作者: r8HZGEmq | 来源:发表于2017-03-02 15:53 被阅读0次

    做J2ME开发的时候,软件中所有的你能看到的东西,都是要手动去绘制的,比如我想在手机屏幕水平居中&&距离顶部100px的地方放置一个button,那么我会先new一个画布,再设置画笔的颜色宽度等属性,最后计算button的左上角左边和宽高,并绘制图案,设置监听等。现在想想,其实这就是android里的自定义view缩影了。

    本来也是想写一篇文章演示一下如何在画布上画一个圆形矩形,分享view源码里的执行机制,但是感觉项目中是不会用到这些玩意的。所以直接把一个公司废弃项目里的自定义控件拿出来演示可能更靠谱。如下图,项目需求一个倒计时控件,从外部传入一个时间戳,然后start()执行。

    第一步:在android里自定义view,都需要继承android.view.View,自己根据业务需要来复写onMeasure()和onDraw()这两个方法,其实也是在底层计算控件尺寸,渲染控件外观。这里我们根据直接的具体业务继承了LinearLayout,复写这两个方法。考虑到布局比较复杂,所以选择在xml中布局好inflate到自定义View的类中,布局文件就不写了,最后会给github地址。

    第二部,初始化响应的控件

    第三部,实现自定义控件内部的业务逻辑。在我们的这个例子里,当然是倒计时的实现了。需要从外部传一个参数进来,然后start开始执行倒计时。。。。

    第四部,其实还是业务的实现,这里是TickTimer的内部实现,具体细节不列出来,因为我们主要是讨论自定义view的实现。

    最后,使用的时候,和android-sdk的控件没什么区别,还是在xml里布局,然后在java类中findviewbyID,然后调用控件的方法,这里我们只写了init和start方法,还有stop等没列举出来,这些都是可以扩展的,只要你高兴

    附上github地址:自定义控件

    相关文章

      网友评论

          本文标题:自定义view-只需要这几步

          本文链接:https://www.haomeiwen.com/subject/rxshgttx.html