Ich habe Unterklasse von ImageView
, auf dem ich zeichnen kann (Stift, Rect, Elipse etc ..) und EditText
Subviews hinzufügen (ziehbar und kann gedreht werden).Xamarin Android Draw EditText auf Bitmap
Problem ist, wenn ich endgültige Bild bekommen möchte Ich bin mir nicht sicher, wie diese EditText
in neues Bild zusammenführen, weil alle Werkzeuge direkt auf Leinwand zeichnen, während ich EditText
Texte am Ende zeichnen müssen, da sie brauchen vor dem Klicken auf "Speichern" klickbar und änderbar sein.
Nach vielen verschiedenen Ansätzen ist diese am richtigsten, aber es funktioniert nicht, wenn der Text um ein gewisses Maß gedreht wird.
public Bitmap GetFinalBitmap()
{
this.DrawingCacheEnabled = false;
this.DrawingCacheEnabled = true;
var finalImage = Bitmap.CreateBitmap(GetDrawingCache(true));
foreach (var item in this.pathLists)
{
if (item.TextView != null)
{
item.TextView.BuildDrawingCache(true);
var txt = item.TextView.GetDrawingCache(true);
finalImage = Overlay(finalImage, txt, item.TextView.GetX(), item.TextView.GetY());
}
}
return finalImage;
}
public Bitmap Overlay(Bitmap bmp1, Bitmap bmp2, float x, float y)
{
Bitmap bmOverlay = Bitmap.CreateBitmap(bmp1.Width, bmp1.Height, bmp1.GetConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.DrawBitmap(bmp1, new Matrix(), null);
canvas.DrawBitmap(bmp2, x, y, null);
return bmOverlay;
}
Jede mögliche Hilfe (update Lösung oder vielleicht neuen Ansatz, wie EditText
mit korrekten Koordinaten auf ImageView's
Bitmap zeichnen) geschätzt.