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完美地工作。 –