由于公司項目的需求,需要繪制一條豎直的間斷線作為分割線。這個可坑了爹了,以前只搞過水平的間斷線,只要通過shape也可以簡單的畫出來,但是千萬記得把hardwareAccelerated給關了,不然水平的虛線還是會是實線,這個以前也是我趟過的一個坑。那咋辦呢,找不到原生的解決方案,不就是一條簡單的間斷線嘛,還能難住我等程序猿?這個時候,首先聯想到的就是自繪控件了。
自繪控件,顧名思義就是控件所展示的內容都是我們自己繪制上去的。所有的繪制操作就是在onDraw()方法里面進行的,當然我們的這個自定義控件都是View的直接子類。比如最常使用的TextView、ImageView就是View的直接子類,也可視作自繪控件,所有的繪圖操作也都是在自己的onDraw()中,有興趣的同學繪圖可以去讀讀這些基本控件的源碼。今天第一講,我們也動手實現我們自己的控件。
直接上代碼,比較簡潔。
第一步,在attrs.xml中定義控件的屬性

定義line_color這個屬性主要就是為了控件兼容著想,可以隨意定制化間斷線的顏色。
第二步、定義DashLine的成員變量

第三步、在構造方法中初始化變量

第四步、繪圖

第五步、布局使用

代碼比較簡潔,也有注釋,就不多說了。看下成果

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!
新聞熱點
疑難解答