Canvas 的drawRect 幾個引數理解

2021-06-14 07:12:01 字數 1846 閱讀 1515

昨天寫了乙個view檢視,在上面畫了乙個矩形,這個檢視的最後效果如圖:

主要**如下:

package com.view;

import com.example.testsql.r;

import android.content.context;

import android.graphics.bitmap;

import android.graphics.bitmapfactory;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.paint.style;

import android.view.view;

public class myview extends view

@override

protected void ondraw(canvas canvas)

}

其中關於canvas.drawrect(150, 75, 250, 120, paint); 的這個方法,我想說一下關於canvas 的 drawrect 幾個引數理解,

其實網上大部分的解釋是

left:矩形的左邊位置。

top:矩形的上邊位置。

right:矩形的右邊位置。

bottom:矩形的下邊位置。

但是我個人怎麼看都不是很懂,於是我就開始問自己乙個問題,如果要兩個點來確定乙個矩形,那這兩個點應該怎樣放呢?不用多想,一定是對角!那確定了對角關係後,我就開始嘗試畫四方格,實際上也就是四個矩形拼湊而成。 於是我自己在紙上畫了一下,如下圖:

只要先確認第乙個矩形,那麼b1的座標就是於a1同y軸與a2同x軸。以此類推。

canvas.drawtext("hello1", 200, 90, paint);

canvas.drawtext("hello2", 300, 100, paint);

canvas.drawtext("hello3", 200, 150, paint);

canvas.drawtext("hello4", 300, 170, paint);

而文字hello1,只要x軸只要在a1和b1的x軸之間,y軸在b1和a2的y軸之間,文字就不會出邊框,其它以此類推。

而這個類的呼叫方法也很簡單:

package com.view;

import android.annotation.suppresslint;

import android.os.bundle;

@suppresslint("wrongcall")

public class displayview extends activity

}

drawRect方法的引數詳解

建立自定義檢視,在繼承uiview之後,最關鍵的就是重寫drawrect方法了。這裡暫不介紹具體怎樣重寫這個方法來實現想要的效果,重點介紹drawrect方法所帶的cgrect型別的引數的作用。drawrect接受的唯一引數就是 髒矩形 髒即需要更新的意思。這個引數給定的區域是self真正需要更新的...

iOS重繪機制drawRect

ios的繪圖操作是在uiview類的drawrect方法中完成的,所以如果我們要想在乙個uiview中繪圖,需要寫乙個擴充套件uiview 的類,並重寫drawrect方法,在這裡進行繪圖操作,程式會自動呼叫此方法進行繪圖。下面先說明一下繪圖,比如,你想繪製乙個方塊,你需要寫乙個類來擴充套件uivi...

iPhone重繪機制drawRect

phone重繪機制drawrect 如何使用iphone進行繪圖 重繪操作 iphone的繪圖操作是在uiview類的drawrect方法中完成的,所以如果我們要想在乙個uiview中繪圖,需要寫乙個擴充套件uiview 的類,並重寫drawrect方法,在這裡進行繪圖操作,程式會自動呼叫此方法進行...