有的時候咱們須要一種虛線效果,好比圖片的邊框,憤怒的小鳥的飛翔路徑,那麼怎麼繪製這些虛線呢?方法不少,目前我以爲好的有兩種:html
1、本身建立模式,一個點一個點的繪製。android
2、用Android提供的 DashPathEffect 類來建立模式繪製。canvas
下面我要演示的就是第二種方法,用Android提供給個人API來繪製。數組
因爲是開發項目的一個小塊,下面只能給出部分截圖:url
下面看一下核心繪圖代碼:.net
public void draw(Canvas mcanvas) {
}
下面是關於這個DashPathEffect 的一些說明,摘錄的:
DashPathEffect是PathEffect類的一個子類,能夠使paint畫出相似虛線的樣子,而且能夠任意指定虛實的排列方式.
代碼中的float數組,必須是偶數長度,且>=2,指定了多少長度的實線以後再畫多少長度的空白.
如本代碼中,繪製長度1的實線,再繪製長度2的空白,再繪製長度4的實線,再繪製長度8的空白,依次重複.1是偏移量,能夠不用理會.
簡單介紹下 PathEffect類:
PathEffect是用來控制繪製輪廓(線條)的方式。
PathEffect對於繪製Path基本圖形特別有用,可是它們也能夠應用到任何Paint中從而影響線條繪製的方式。
使用PathEffect,能夠改變一個形狀的邊角的外觀而且控制輪廓的外表。
Android包含了多個PathEffect,包括:
CornerPathEffect
DashPathEffect
DiscretePathEffect
PathDashPathEffect
下面的效果能夠在一個Paint中組合使用多個Path Effect。
SumPathEffect
ComposePathEffect
對象形狀的PathEffect的改變會影響到形狀的區域。這就可以保證應用到相同形狀的填充效果將會繪製到新的邊界中。
本文同步分享在 博客「xiangzhihong8」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。