public void TransactResult(MLAnalyzer.Result result) { if (!liveObjectAnalyseActivity.mlsNeedToDetect) { return; } this.liveObjectAnalyseActivity.mOverlay.Clear(); SparseArray objectSparseArray = result.AnalyseList; for (int i = 0; i < objectSparseArray.Size(); i++) { MLObjectGraphic graphic = new MLObjectGraphic(liveObjectAnalyseActivity.mOverlay, ((MLObject)(objectSparseArray.ValueAt(i)))); liveObjectAnalyseActivity.mOverlay.Add(graphic); } // When you need to implement a scene that stops after recognizing specific content // and continues to recognize after finishing processing, refer to this code for (int i = 0; i < objectSparseArray.Size(); i++) { if (((MLObject)(objectSparseArray.ValueAt(i))).TypeIdentity == MLObject.TypeFood) { liveObjectAnalyseActivity.mlsNeedToDetect = true; liveObjectAnalyseActivity.mHandler.SendEmptyMessage(LiveObjectAnalyseActivity.StopPreview); } } }
public override void Draw(Canvas canvas) { // draw the object border. RectF rect = new RectF(this.mObject.Border); rect.Left = this.TranslateX(rect.Left); rect.Top = this.TranslateY(rect.Top); rect.Right = this.TranslateX(rect.Right); rect.Bottom = this.TranslateY(rect.Bottom); canvas.DrawRect(rect, this.boxPaint); // draw other object info. canvas.DrawText(MLObjectGraphic.GetCategoryName(this.mObject.TypeIdentity), rect.Left, rect.Bottom, this.textPaint); canvas.DrawText("trackingId: " + this.mObject.TracingIdentity, rect.Left, rect.Top, this.textPaint); if (this.mObject.TypePossibility != null) { canvas.DrawText("confidence: " + this.mObject.TypePossibility, rect.Right, rect.Bottom, this.textPaint); } }