Android Canvas Region.Op中的Clip方式

來源:互聯網
上載者:User

android的clip有以下兩點疑問:

Clip(剪下)的時機

Clip中的Op的參數的意思。

 

通常咱們理解的clip(剪下),是對已經存在的圖形進行clip的。但是,在android上是對canvas(畫布)上進行clip的,要在畫圖之前對canvas進行clip,如果畫圖之後再對canvas進行clip不會影響到已經畫好的圖形。一定要記住clip是針對canvas而非圖形。

 

接下來通過android內建的APIdemo Clipping例子詳細講述Clip中的Op的參數的意思。Android提供clipRect、clipPath和clipRegion剪下地區的API。

Op一共有 DIFFERENCE,INTERSECT,UNION,XOR, REVERSE_DIFFERENCE, REPLACE六種選擇。

 

例子:

在canvas上剪下從(0,0)到(60,60)的方塊。藍色地區加紫色地區。

在canvas上剪下從(40,40)到(100,100)的方塊。橄欖色地區加紫色地區。

在canvas上剪下從(0,0)到(100,100)的方塊。


 

先在第二方塊上加上Op參數例如:canvas.clipRect(40, 40, 100, 100, Region.Op. DIFFERENCE);

首先,需要搞清楚Op參數針對的對象。接著瞭解其含義。

Op參數針對的對象是之前剪下的地區以及當前要剪下的地區。

在本例中涉及到地區是從(0,0)到(60,60)的方塊和從(40,40)到(100,100)的方塊。

那有哪些含義呢?就是表示當前要剪下的地區與之前剪下過的之間的關係。

 

DIFFERENCE:之前剪下過除去當前要剪下的地區(藍色地區)。

INTERSECT:當前要剪下的地區在之前剪下過內部的部分(紫色地區)。

UNION:當前要剪下的地區加上之前剪下過內部的部分(藍色地區+紫色地區+橄欖色地區)。

XOR:異或,當前要剪下的地區與之前剪下過的進行異或。(藍色地區+橄欖色地區)。

REVERSE_DIFFERENCE:與DIFFERENCE相反,以當前要剪下的地區為參照物,當前要剪下的地區除去之前剪下過的地區(橄欖色地區);

REPLACE:用當前要剪下的地區代替之前剪下過的地區。(橄欖色地區+紫色地區);

沒帶Op參數效果與INTERSECT的效果一樣,兩個地區的交集。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.