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:paint.style設定畫筆的樣式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的高度的
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...