如下圖所示,我想在螢幕的在150*150的小矩形中間畫乙個畫弧。開始的時候我會去考慮
150*150的居中顯示的圓心怎麼拿到啊?是不是要根據手機尺寸來計算?半徑也要自己去指
定。按這個計算來說,圓心座標為(160,240),半徑為75,但我見到的**讓我對這個想法
產生的懷疑。
下面的自定義view**中getwidth()=225,getheight=225,我開始很奇怪,getwidth和
getheight()得到的不是手機的尺寸嗎?怎麼會是這麼個奇怪的值啊?寬高一樣的!!
後來我猜想,因為在xml配置檔案中我設定的view為150*150dip,(對於hvga)轉化成畫素
就是225pix。也就是150dip=225pix-->1dip=1.5pix。
接著又有奇怪的事情:
radialgradient rg = new radialgradient( x, y, y, color.argb(255, 255, 0,
0),color.argb(255, 0, 255, 0), tilemode.clamp);//漸變
上面**表明x = 1/2getwidth() == 112.5,y=1/2getheigth()=112.5就是我們的圓心。
這與我們當時算的(160,240)是圓心不相符啊。另外,半徑竟然和x,y相等。也就是說只
有這包含這個圓的矩形是從(0,0)-->(a,a)的才有可能圓心座標值和半徑值相等。
為什麼這麼奇怪的設座標設定卻能畫出我要的東西呢?我的理解是,對於自定義view來
說,如果在xml中指定了它的尺寸和位置。那麼在view內部它的座標軸不再是整個手機螢幕
了,而是給指定的那塊區域。比如上面的例子:
給自定義view在手機的某個區域分配了乙個150dip*150dip(225pix*225pix)的區域,然後
在自定義view內部,這個區域就是它的全部。getwidth就是225,裡面的內切圓圓心也就為
(getwidth()/2,getheight()/2),內切圓的半徑也就為getwidth()或getheight()。這樣的
相對座標使我們定位更容易一些。
canvas 繪製圓弧
處理資料 let plan let zhanxian let chengjiao let x 200 let y 200 data.foreach d,i let datas zhanxian,chengjiao datas迴圈 datas.foreach arr,m else function d...
使用canvas繪製圓弧動畫
對於canvas的繪製,首先需要在html內指定一塊畫布,即,可以看做是在ps中新建乙個空白文件,之後所有的操作都將呈現在這個文件之上,與ps的區別是,canvas本身沒有圖層的特性,當需要展示不同維度的檢視時,需要交由html的位置關係來解決。canvas標籤上,值得一提的就是width和heig...
16 canvas繪製圓弧
1 doctype html 2 html lang en 3 head 4 meta charset utf 8 5 title 16 canvas繪製圓弧 title 6 style 7 11canvas 16style 17head 18 body 19 canvas width 500 he...