Ich benutze Xamarin, um eine Android-App zu entwickeln. Wenn ich versuche, die Region-Klasse zu verwenden, habe ich ein Problem, unter dem Code kann gut funktionieren und einen erwarteten blauen Bereich anzeigen.Ich verstehe nicht Region Klasse sehr gut
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);
Aber unter Code funktioniert nicht, nur nichts zeigen, einen leeren Hintergrund
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);
Ich weiß nicht, warum.
Danke. Ich habe meine Koordinaten geändert und die Formen können angezeigt werden. Aber ich stimme deiner Erklärung nicht zu. Wenn ActionBar oder etwas anderes meine Form bedeckt und es im zweiten Fall nicht zu sehen ist, warum dann diese Formen im ersten Fall gesehen werden können? – Frank
Beachten Sie, dass im Gegensatz zu clipRect() und clipPath(), die ihre Argumente durch die aktuelle Matrix, dh die Methode clipRect() transformieren, ihre Koordinate die aktuelle Matrix ist, der Raum, in dem sie platziert wird. Bei der ClipRegion() -Methode ist die Koordinate jedoch die Bitmap der aktuellen Ebene, der Telefonbildschirm. Ihre Koordinate ist anders. –
Ich habe meine Antwort aktualisiert, bitte überprüfen Sie es. :) –