Android 基礎之自定義View使用技巧難點總結
阿新 • • 發佈:2018-12-14
1、簡介
該文章記錄的是本人在日常自定義View的一些常見技巧與問題的解決方案。
2、具體案例
2.1 探究畫筆的具體位置
情況1:
// 繪製一個 描邊為10f的的一個矩形
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.GREEN);
Rect rect = new Rect(0,0,40,40);
canvas.drawRect(rect,rectPaint);
}
從這裡我們可以看出,當我們的矩形從左上角開始畫起,那麼線條的寬度是沒有完全畫出來的,這裡否定了描邊從左邊緣畫起
情況2
// 這次我們變換一下 從我們畫筆寬度的開始畫 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.GREEN); Rect rect = new Rect(10,10,40,40); canvas.drawRect(rect,rectPaint); }
從情況2我們可以看出,左邊是留有空隙的,那麼也就是活我們的畫筆也不是右邊緣對齊的。
這個時候我們大致可以得出結論,應當是畫筆寬度的中間 /2 開始繪製,下面看看如下。
情況3
// 咱們從邊緣線一半開始繪製 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.GREEN); Rect rect = new Rect(10/2,10/2,40,40); canvas.drawRect(rect,rectPaint); }
好的完美,就是要這種效果。
總結一下: 當我們繪製矩形框的時候,我們的下筆點應該是StrokeWidth 寬度的一半撒。