2
我正在交互測試項目中實時顯示ecg圖表。它使用Xamarin在windows和android上工作正常,但在IOS中我有慢和慢的性能。IOS Xamarin - 實時劇情畫線
我認爲這個問題是由於我缺乏的ios專業..
我做了兩次試驗都失敗了,有人有一個解決方案,以加快?
試驗A
我打電話劇情然後分配的UIImage wBitmap作爲MyView的研究背景每< 10ms的
public void Plot(PointF pPrec, PointF pNext)
{
SizeF bitmapSize = new SizeF(wBitmap.Size);
using (CGBitmapContext context2 = new CGBitmapContext(IntPtr.Zero, (int)bitmapSize.Width, (int)bitmapSize.Height, 8, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB(), CGImageAlphaInfo.PremultipliedFirst))
{
context2.DrawImage(new RectangleF(0, 0, wBitmap.Size.Width, wBitmap.Size.Height), wBitmap.CGImage);
context2.SetLineWidth(1);
context2.AddLineToPoint(pNext.X, pNext.Y);
context2.DrawPath(CGPathDrawingMode.Stroke);
// output the drawing to the view
wBitmap = UIImage.FromImage(context2.ToImage());
}
}
測試B
我打電話劇情然後分配的UIImage wBitmap作爲MyView的研究背景每< 10ms
public void Plot2(PointF pPrec, PointF pNext) { UIGraphics.BeginImageContext(wBitmap.Size); context = UIGraphics.GetCurrentContext();
using (context)
{
if (wBitmap != null)
{
context.TranslateCTM(0f, wBitmap.Size.Height);
context.ScaleCTM(1.0f, -1.0f);
context.DrawImage(new RectangleF(0f, 0f, wBitmap.Size.Width, wBitmap.Size.Height), wBitmap.CGImage);
context.ScaleCTM(1.0f, -1.0f);
context.TranslateCTM(0f, -wBitmap.Size.Height);
}
context.SetLineWidth(1);
context.MoveTo(pPrec.X, pPrec.Y);
context.AddLineToPoint(pNext.X, pNext.Y);
context.DrawPath(CGPathDrawingMode.Stroke);
wBitmap = UIGraphics.GetImageFromCurrentImageContext();
}//end using cont
UIGraphics.EndImageContext();
}
爲什麼每10ms需要調用一次?似乎過度殺傷。 – bbarnhart
是的心電圖程序實時發送每2ms一個樣本(x,y座標)我可以丟棄5個樣本進行抽取,繪圖過程每隔10ms創建一個新點。在Galaxy Tab 3 Android和Windows上,Samsung ATIV完美地工作。 –