Was ist die richtige Methode, um rohe Berührungspunkte auf Bildschirmkoordinaten in MonoTouch oder MonoDroid zu übersetzen? Mein Code funktioniert gut auf dem Emulator, aber die Punkte sind auf einem Gerät ungenau. Hier ist, was ich bisher:MonoTouch/MonoDroid - Übersetzen Sie Raw touch-Koordinaten in Bildschirmkoordinaten
private void Initialize()
{
this.Touch += TouchView_Touch;
}
void TouchView_Touch(object sender, View.TouchEventArgs e)
{
e.ReturnValue = true;
touchPoints.Add(e.Event.RawX);
touchPoints.Add(e.Event.RawY);
this.Invalidate();
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
canvas.DrawColor(Color.White);
Paint p = new Paint();
p.Color = Color.Black;
Matrix m = new Matrix();
canvas.GetMatrix(m);
float[] destination = touchPoints.ToArray();
Matrix inverse = new Matrix();
bool canInvert = m.Invert(inverse);
inverse.MapPoints(destination);
canvas.DrawPoints(destination, p);
}