這篇主要是API,方便自己查閱。
paint
先上api,感謝分享
https://blog.csdn.net/shell812/article/details/49781397?ref=myread
常用API有
//重置
void reset();
//將另外一個(gè)畫筆的屬性賦值過來
void set(Paint src);
//設(shè)置可兼容的縮放
void setCompatibilityScaling(float factor);
//設(shè)置模式
void setFlags(int flags);
;//設(shè)置畫筆隱藏模式
void setHinting(int mode)
//是否抗鋸齒
void setAntiAlias(boolean aa);
//設(shè)定是否使用圖像抖動(dòng)處理,會(huì)使繪制出來的圖片顏色更加平滑和飽滿,圖像更加清晰
void setDither(boolean dither);
//設(shè)置線性文本
void setLinearText(boolean linearText);
//設(shè)置該項(xiàng)為true,將有助于文本在LCD屏幕上的顯示效果
void setSubpixelText(boolean subpixelText);
//設(shè)置下劃線
void setUnderlineText(boolean underlineText);
//設(shè)置帶有刪除線的效果
void setStrikeThruText(boolean strikeThruText);
//設(shè)置偽粗體文本,設(shè)置在小字體上效果會(huì)非常差
void setFakeBoldText(boolean fakeBoldText);
//如果該項(xiàng)設(shè)置為true,則圖像在動(dòng)畫進(jìn)行中會(huì)濾掉對(duì)Bitmap圖像的優(yōu)化操作
//加快顯示速度,本設(shè)置項(xiàng)依賴于dither和xfermode的設(shè)置
void setFilterBitmap(boolean filter);
//設(shè)置畫筆風(fēng)格,空心或者實(shí)心 FILL,F(xiàn)ILL_OR_STROKE,或STROKE
//Paint.Style.STROKE 表示當(dāng)前只繪制圖形的輪廓,而Paint.Style.FILL表示填充圖形。
void setStyle(Style style);
//設(shè)置顏色值
void setColor(int color);
//設(shè)置透明圖0~255,要在setColor后面設(shè)置才生效
void setAlpha(int a);
//設(shè)置RGB及透明度
void setARGB(int a, int r, int g, int b);
//當(dāng)畫筆樣式為STROKE或FILL_OR_STROKE時(shí),設(shè)置筆刷的粗細(xì)度
void setStrokeWidth(float width);
void setStrokeMiter(float miter);
//當(dāng)畫筆樣式為STROKE或FILL_OR_STROKE時(shí),設(shè)置筆刷末端的圖形樣式
//如圓形樣式Cap.ROUND,或方形樣式Cap.SQUARE
void setStrokeCap(Cap cap);
//設(shè)置繪制時(shí)各圖形的結(jié)合方式,如平滑效果等
void setStrokeJoin(Join join);
//設(shè)置圖像效果,使用Shader可以繪制出各種漸變效果
Shader setShader(Shader shader);
//設(shè)置顏色過濾器,可以在繪制顏色時(shí)實(shí)現(xiàn)不用顏色的變換效果
ColorFilter setColorFilter(ColorFilter filter);
//設(shè)置圖形重疊時(shí)的處理方式,如合并,取交集或并集,經(jīng)常用來制作橡皮的擦除效果
Xfermode setXfermode(Xfermode xfermode);
//設(shè)置繪制路徑的效果,如點(diǎn)畫線等
PathEffect setPathEffect(PathEffect effect);
//設(shè)置MaskFilter,可以用不同的MaskFilter實(shí)現(xiàn)濾鏡的效果,如濾化,立體等
MaskFilter setMaskFilter(MaskFilter maskfilter);
//設(shè)置Typeface對(duì)象,即字體風(fēng)格,包括粗體,斜體以及襯線體,非襯線體等
Typeface setTypeface(Typeface typeface);
//設(shè)置光柵化
Rasterizer setRasterizer(Rasterizer rasterizer);
//在圖形下面設(shè)置陰影層,產(chǎn)生陰影效果,radius為陰影的角度,dx和dy為陰影在x軸和y軸上的距離,color為陰影的顏色
//注意:在Android4.0以上默認(rèn)開啟硬件加速,有些圖形的陰影無法顯示。關(guān)閉View的硬件加速 view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
void setShadowLayer(float radius, float dx, float dy, int color);
//設(shè)置文本對(duì)齊
void setTextAlign(Align align);
//設(shè)置字體大小
void setTextSize(float textSize);
//設(shè)置文本縮放倍數(shù),1.0f為原始
void setTextScaleX(float scaleX);
//設(shè)置斜體文字,skewX為傾斜弧度
void setTextSkewX(float skewX);

Path
Path類指的是由直線或者二次曲線或者三次曲線組成的幾何路徑。他可以通過canvas.drawPath(path, paint)去畫出這個(gè)幾何路徑,或者這個(gè)幾何路徑的輪廓(這個(gè)要取決對(duì)應(yīng)Paint類的Style),同時(shí)還可以用于裁剪或者在Paht路徑上面繪制文字。
感謝分享
http://www.itdecent.cn/p/9ad3aaae0c63
如何繪制Path:
通過設(shè)置Paint的Style(FILL、STROKE、FILL_AND_STROKE),然后調(diào)用canvas.drawPath(path, paint);Path還可以用于剪切或者在路徑上繪制文本(canvas.drawTextOnPath())。
構(gòu)造函數(shù)
Path() // 空的構(gòu)造函數(shù)
Path(Path src) //創(chuàng)建一個(gè)新的路徑,并且從src路徑里賦值內(nèi)容

所有方法里面都有一個(gè)共同的參數(shù)Direction :

path關(guān)閉和不關(guān)閉的區(qū)別如圖
感謝分享
https://juejin.im/entry/57185e53128fe10060024d59

PathMeasure
PathMeasure是一個(gè)用來測(cè)量Path的類,主要有以下方法:


Canvas
感謝分享
https://juejin.im/entry/588eea258d6d81005814678e
Canvas我們可以稱之為畫布,能夠在上面繪制各種東西,是安卓平臺(tái)2D圖形繪制的基礎(chǔ),非常強(qiáng)大。

這篇也只能寫點(diǎn)基本APi大家可以去試試。
