1. 程式人生 > >Android 基礎之自定義View使用技巧難點總結

Android 基礎之自定義View使用技巧難點總結

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 寬度的一半撒。