Paint畫筆相關

2021-08-20 23:46:35 字數 3698 閱讀 2901

1:paint.fontmetricsint、paint.fontmetrics字型高度測量

都是測量字型高度相關的類,2個都類功能一樣,乙個返回int值,乙個返回float值

他與paint設定的size和typeface(字型型別)有關,這些屬性改變時會影響獲取到的值

4個引數:ascent、bottom、descent、leading、top

上面paint.fontmetricsint、paint.fontmetrics在paint中的其他方法

1:float getfontmetrics (paint.fontmetrics metrics)獲取指定引數的值(float)

2:int getfontmetricsint (paint.fontmetricsint fmi)獲取指定引數的值(int)

3:paint.fontmetrics getfontmetrics () 獲取fontmetrics 物件

4:paint.fontmetricsint getfontmetricsint ()獲取fontmetricsint 物件

5:float getfontspacing () 返回字型高度

注意:字型高度是ascent+descent的高度,不包含top+bottom 以後實際操作是大部分是不考了top+bottom的高度的

2:paint.style設定畫筆的樣式

getstyle ()/ setstyle (paint.style style)

設定畫筆填充的樣式,有三個引數

paint.style.stroke:空心,可以設定畫筆邊框寬度

paint.style.fill:填充滿樣式進行繪製

paint.style.fill_and_stroke:2空心和填充都包含

3:paint.align 繪製文字時位置方向

gettextalign ()/settextalign (paint.align align)

paint paint = new paint();

paint.settextsize(50);

paint.settextalign(paint.align

.center);

canvas.drawtext("打掃打掃打掃打掃的", 540, 50, paint);

paint.settextalign(paint.align

.left);

canvas.drawtext("打掃打掃打掃打掃的", 540, 110, paint);

paint.settextalign(paint.align

.right);

canvas.drawtext("打掃打掃打掃打掃的",540,160,paint);

5:paint.cap畫筆開始結合繪製樣式

getstrokecap ()/ setstrokecap (paint.cap cap)

表示畫筆在開始和結束繪製圖形時的樣式,有三個值

paint.cap.butt:沒效果和正方形一樣

paint.cap.round:圓形

paint.cap.square:正方形

demo:最簡單就是畫一根直線,可以明顯看到直線兩端的樣式

paint paint = new paint();

paint.setstrokewidth(30);

paint.setstrokecap(paint.cap

.round);

canvas.drawline(30, 110, 330, 110, paint);

paint paint = new paint();

paint.settextsize(50);

paint.setcolor(color.red);

float s=new

float[1024]; //這個陣列就是measuredwidth引數

int i=paint.breaktext("你好你好你好你好你好你好你好你好你好你好",true,180,s);

//i:3 s[0]:150

總結:我們設定字型大小為50,我測量最大寬度為180,在這個寬度上獲取到3個字型

s就是上面方法的measuredwidth陣列,雖然是個陣列,但是在原始碼清楚的看到他只 取s[0]第乙個值,demo他返回的值150,說明這個引數裝的是測量到字型的總寬度。

-根據指定文字,返回recf矩形邊框

1:gettextbounds (char text, int index, int count, rect bounds)

2:gettextbounds (string text, int start, int end, rect bounds)

demo:

paint paint = new paint();

paint.settextsize(50);

rect rect=new rect();

paint.gettextbounds("大倒薩倒薩倒薩倒薩打算阿達", 0, 11, rect);

等到寬度是560 這個寬度就是12個字型的寬度

在圖形下面設定陰影層,產生陰影效果

radius為陰影的寬度

dx和dy為陰影在x和y方向上的偏移量,如果設定過大你會發現字型和陰影分離

color為陰影的顏色

paint paint = new paint();

paint.settextsize(50);

paint.setshadowlayer(5,100,100,color.blue);

paint.settextalign(paint.align

.center);

canvas.drawtext("打掃打掃打掃打掃的", 540, 50, paint);

Android 畫筆 paint 學習記錄

最近在學習自定義view,不學不知道,一學嚇一跳,原來我是個文盲,內心有點小憂傷,我還得慢慢爬啊,廢話不多說,還是默默的打我的 吧。1.setstyle paint.style style 設定畫筆樣式,取值三個,分別如下 paint.style.fill 填充內部。paint.style.fill...

Android自定義控制項之畫筆 Paint

初始化畫筆 paint paint new paint 設定畫筆顏色 paint.setcolor color.red paint.setcolor 0xffffffff 設定填充樣式 paint.setstyle paint.style.stroke 設定畫筆寬度 paint.setstrokew...

Paint 濾鏡效果

lightingcolorfliter r r mul.r 0xff add.r g g mul.g 0xff add.g b b mul.b 0xff add.b 紅色去除掉 lightingcolorfilter lighting new lightingcolorfilter 0x00ffff...