Okay, wenn ich mir das Resultat in Verbindung mit der Dokumentation so ansehe, dann sieht das 'richtig' aus…
Zitat von "Canvas.drawBitmapMesh(…)"
A more general version of this method is drawVertices().
Zitat von "Canvas.drawVertices(…)"
Draw the array of vertices, interpreted as triangles (based on mode).
Du nimmst ein 2D Bild von sagen wir 5,68cm Höhe und 3,20cm Breite.
Jetzt möchtest Du das auf sagen wir 4,75cm Höhe (links), 2,78cm Breite (oben), 5,32cm Höhe (rechts) und 3,02cm Breite (unten) skalieren.
Dein Ansatz macht Folgendes: aus den vier Punktpaaren schnibbelt es sich zwei Rechtecke und skaliert sie entsprechend.
Stumpf gesagt hast Du jetzt ein Dreieck mit spitzem 72° Winkel und einer Schenkellänge von 2,78cm x 5,32cm.
Sowie ein Dreieck mit einem stumpfen 98° Winkel und einer Schenkellänge von 3,02cm x 4,75cm.
Auf diese Dreiecke werden jetzt die ausgeschnittenen Dreiecke projiziert: 3,20 x 5,68 mit 90° auf 2,78 x 5,32 mit 72°; 3,20 x 5,68 mit 90° auf 3,02 x 4,75 mit 98°
Daher hast Du diesen Knick, der bei Linien stark auffallend sichtbar ist. (Andererseits hat eine solche Transformation bei reinen Farben wenig Sinn…)
Die von Dir benutzte Methode teilt Dein Mesh in flächenmäßig ungefähr gleich große Dreiecke und projiziert über jedes Dreieck einen Ausschnitt Deines Ursprungsbildes.
Das ist so eine Art simuliertes 3D, bei dem ja auch einzelne Texturen auf einzelne Dreiecksflächen gepackt werden. Und wie bei 3D gilt: je mehr und dadurch kleiner die Dreiecke, desto besser das Ergebnis.
Du könntest also dem Canvas einfach statt 4 Ecken (oben links, oben rechts, unten links, unten rechts) auch 9 Ecken geben (oben links, oben mitte, oben rechts, mitte links, mitte, mitte rechts, unten links, unten mitte, unten rechts). Du kannst das meinetwegen auch auf 64 Ecken aufblähen. Die Qualität wird immer besser, die Berechnungszeit immer höher.
Eine Alternative wäre natürlich, direkt ein OpenGL View mit einer entsprechend vorbereiteten Szene bereit zu stellen, auf der Du dann jeweils die Textur darstellst.
Fakt ist: einfach mal so lässt sich das nicht umsetzen.