天天看點

android之canvas.draw方法需要注意的地方

android之canvas.draw方法需要注意的地方

如果需要在上圖布局中畫一個矩形(大小為上圖布局一樣大),并且線條寬為10dp即20px,需要實作後的效果如下(此篇使用的是1dp=2px的比例,用的時候請根據實際來進行換算):

android之canvas.draw方法需要注意的地方

布局高度int height = 100;  //機關px 布局寬度int width = 200;  //機關px 線條寬度int strokeWidth = 20; //機關px 那麼,步驟: 1.畫筆:      Paint paint = new Paint(); 2.線條寬為10dp即20px,那麼設定畫筆為描邊Stroke:       paint.setStrokeWidth(20);  //線條寬20px       paint.setStyle(Paint.Style.STROKE);  //設為描邊,這樣中間就是空的,不會被填充 3.那麼開始畫矩形,則位置必須是圖中黑色線條位置來畫,因為線條有寬度,也占了寬度的,是以畫的時候位置 必須取線條中間 ,即圖中黑色線條畫的矩形,是以正确的畫矩形應該是:       canvas.drawRect(strokeWidth/2,strokeWidth/2,width-strokeWidth/2,height-strokeWidth/2,paint);  //左上右下,畫筆

延伸: 1.如果畫矩形,如果不描邊,即沒有 paint.setStrokeWidth(20);和paint.setStyle(Paint.Style.STROKE);,那就直接以紅色矩形的左上角為點畫即可 2.如果畫一個圓環,如下圖,也是有描邊,那麼畫圓的時候半徑就是布局的一半減去線條寬度的一半

android之canvas.draw方法需要注意的地方

3.如果畫線,drawline,如下圖所示,若有 paint.setStrokeWidth(20) ,則表示畫線的線條粗細為20px,那麼畫的時候坐标點就是下圖紅點,即左邊界線條的中間點,即(0,10)這個點;

android之canvas.draw方法需要注意的地方