Android高級(jí)UI_Path小試牛刀<一>

我們知道Android中Canvas類(lèi)對(duì)象可以進(jìn)行繪制事物该抒,里面有一個(gè)方法為canvas.drawPath方法,這個(gè)方法就是用來(lái)繪制我們的自定義Path對(duì)象炼吴。Path對(duì)象很有用确垫,我們可以繪制一些特殊的動(dòng)畫(huà)效果,文字吸附效果等等哆致。所以我們需要來(lái)學(xué)習(xí)下Path對(duì)象的使用。

要想使用path做出漂亮的圖片患膛,
比如水波加載

水波紋.png

比如

小水滴粘性.gif

怎么使用path摊阀?

以下是Path的基本操作的方法:

第一類(lèi)(直線與點(diǎn)的操作):lineTo,moveTo,setLastPoint,close

第二類(lèi)(基本形狀):

addXxx,arcTo

第三類(lèi)(設(shè)置方法) :

set(),offset(),reset()

第四類(lèi)(判斷方法) :isConvex(),isEmpty(),isRect(RectF rect)
這些方法之前都要做一個(gè)畫(huà)筆的初始化,代碼如下:

 private void initPaint() {
        mPath = new Path();
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setAntiAlias(true);
        mPaint.setStrokeWidth(8);
        mPaint.setColor(ContextCompat.getColor(this.getContext(), R.color.colorAccent));
    }

Path常用方法表

移動(dòng)起點(diǎn) moveTo 移動(dòng)下一次操作的起點(diǎn)位置
設(shè)置終點(diǎn) setLastPoint 重置當(dāng)前path中最后一個(gè)點(diǎn)位置踪蹬,如果在繪制之前調(diào)用胞此,效果和moveTo相同
連接直線 lineTo 添加上一個(gè)點(diǎn)到當(dāng)前點(diǎn)之間的直線到Path
閉合路徑 close 連接第一個(gè)點(diǎn)連接到最后一個(gè)點(diǎn),形成一個(gè)閉合區(qū)域
添加內(nèi)容 addRect, addRoundRect, addOval, addCircle, addPath, addArc, arcTo 添加(矩形跃捣, 圓角矩形漱牵, 橢圓, 圓疚漆, 路徑酣胀, 圓弧) 到當(dāng)前Path (注意addArc和arcTo的區(qū)別)

        /**
         * 線的操作
         */
        mPath.moveTo(100, 100);
        mPath.lineTo(300, 300);
        mPath.lineTo(100, 300);
        mPath.lineTo(100, 100);
        mPath.moveTo(300, 300);
        mPath.lineTo(500, 300);
        mPath.setLastPoint(500, 500);//改變上一次操作路徑的結(jié)束坐標(biāo)點(diǎn)
        mPath.lineTo(100, 500);
        mPath.close();

        /**
         *  基本形狀
         */
        RectF rectF = new RectF(100,800,200,900);
        mPath.addRect(rectF, Path.Direction.CW);
        mPath.setLastPoint(150,1000);

        mPath.addCircle(500,1000,200, Path.Direction.CW);

        rectF = new RectF(100,1200,500,1700);
        mPath.addRoundRect(rectF,100,100, Path.Direction.CW);//圓角的兩個(gè)半徑


        canvas.drawPath(mPath, mPaint);//畫(huà)出路徑
基礎(chǔ)線的使用.png
addPath(添加Path):

將兩個(gè)path合并在一起刁赦,方法如下

    public void addPath (Path src)
    public void addPath (Path src, float dx, float dy)
    public void addPath (Path src, Matrix matrix)

addPath的第二個(gè)方法的 dx 和 dy 兩個(gè)參數(shù)是什么意思呢?
其實(shí)它們是代表添加path后的位移值闻镶。

設(shè)置方法

1 set()

方法預(yù)覽:

public void set(Path src)

將新的path賦值到現(xiàn)有的path

2 offset()

方法預(yù)覽:

public void offset (float dx, float dy) ;
public void offset (float dx, float dy, Path dst)

將path進(jìn)行平移
offset的第二個(gè)方法的第三個(gè)參數(shù)的意思就是將平移后的path存儲(chǔ)到dst參數(shù)中甚脉。如果傳入dst不為空,將平移后的狀態(tài)存儲(chǔ)到dst中铆农,不影響當(dāng)前path牺氨。dst為空,平移作用當(dāng)前的path墩剖,相當(dāng)于第一個(gè)方法波闹。

3 reset()

方法預(yù)覽:

public void reset()

這個(gè)方法很簡(jiǎn)單,就是將path的所有操作都清空掉涛碑。
也歡迎關(guān)注我的CSDNgithub主頁(yè)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市孵淘,隨后出現(xiàn)的幾起案子蒲障,更是在濱河造成了極大的恐慌,老刑警劉巖瘫证,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揉阎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡背捌,警方通過(guò)查閱死者的電腦和手機(jī)毙籽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)毡庆,“玉大人坑赡,你說(shuō)我怎么就攤上這事∶纯梗” “怎么了毅否?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蝇刀。 經(jīng)常有香客問(wèn)我螟加,道長(zhǎng),這世上最難降的妖魔是什么吞琐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任捆探,我火速辦了婚禮,結(jié)果婚禮上站粟,老公的妹妹穿的比我還像新娘黍图。我一直安慰自己,他們只是感情好卒蘸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布雌隅。 她就那樣靜靜地躺著翻默,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恰起。 梳的紋絲不亂的頭發(fā)上修械,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音检盼,去河邊找鬼肯污。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吨枉,可吹牛的內(nèi)容都是我干的蹦渣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼貌亭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柬唯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起圃庭,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锄奢,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后剧腻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拘央,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年书在,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灰伟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡儒旬,死狀恐怖栏账,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情义矛,我是刑警寧澤发笔,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站凉翻,受9級(jí)特大地震影響了讨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜制轰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一前计、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垃杖,春花似錦男杈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)旺垒。三九已至,卻和暖如春肤无,著一層夾襖步出監(jiān)牢的瞬間先蒋,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工宛渐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竞漾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓窥翩,卻偏偏與公主長(zhǎng)得像业岁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寇蚊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容