0
我使用xamarin開發一個android應用程序。當我嘗試使用Region類時出現問題,下面的代碼可以很好地工作,並顯示預期的藍色區域。不明白Region類非常好
Rect rect1 = new Rect(0, 0, 10,10);
canvas.ClipRect(rect1);
Rect rect2 = new Rect(20, 20, 30,30);
canvas.ClipRect(rect2, Region.Op.Union);
canvas.DrawRect(0, 0, 40, 40, paint);
但下面的代碼無法正常工作,只是什麼都不顯示,一個空白的背景
Region region = new Region();
Rect rect1 = new Rect(0, 0, 10,10);
region.Union(rect1);
Rect rect2 = new Rect(20, 20, 30,30);
region.Union(rect2);
canvas.ClipRegion(region);
canvas.DrawRect(0, 0, 40, 40, paint);
我不知道爲什麼。
謝謝。我改變了我的座標,並可以顯示形狀。但我不同意你的解釋。如果ActionBar或其他東西覆蓋了我的形狀,並導致在第二種情況下無法看到它,那麼爲什麼可以在第一種情況下看到這些形狀? – Frank
請注意,與clipRect()和clipPath()不同,它們通過當前矩陣轉換它們的參數,它表示clipRect()方法,其座標是當前矩陣,它將放置的空間。但對於ClipRegion()方法,其座標是當前圖層的位圖,即手機屏幕。他們的座標是不同的。 –
我已更新我的答案,請檢查它。 :) –