private void AddColor(string imageId) { ImageButtonView imageButton = new ImageButtonView(diagram.Context); imageButton.Click += ButtonTouch; imageButton.ImageId = imageId; //imageButton.SetPadding((int)(10 * currentDensity), 0, (int)(10 * currentDensity), 0); imageButton.LayoutParameters = new ViewGroup.LayoutParams((int)(220 * currentDensity), (int)(200 * currentDensity)); ImageView image = new ImageView(diagram.Context); if (imageId != null) { var imageData = LoadResource(imageId).ToArray(); image.SetImageBitmap(BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length)); } image.Layout((int)(15 * currentDensity), (int)(15 * currentDensity), (int)(520 * MainActivity.Factor), (int)(500 * MainActivity.Factor)); imageButton.AddView(image); scrollLayout.AddView(imageButton); }
public override View GetSampleContent(Context context) { m_context = context; currentDensity = m_context.Resources.DisplayMetrics.Density; //Initialize the SfDiagram and set its background color. diagram = new SfDiagram(context); diagram.LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); diagram.IsReadOnly = true; ObservableCollection <Employee> employees = new ObservableCollection <Employee>(); employees.Add(new Employee() { Name = "Elizabeth", EmpId = "1", ParentId = "", Designation = "CEO" }); employees.Add(new Employee() { Name = "Christina", EmpId = "2", ParentId = "1", Designation = "Manager" }); employees.Add(new Employee() { Name = "Yang", EmpId = "3", ParentId = "1", Designation = "Manager" }); employees.Add(new Employee() { Name = "Yoshi", EmpId = "4", ParentId = "2", Designation = "Team Lead" }); employees.Add(new Employee() { Name = "Yoshi", EmpId = "5", ParentId = "2", Designation = "Co-ordinator" }); employees.Add(new Employee() { Name = "Philip", EmpId = "6", ParentId = "4", Designation = "Developer" }); employees.Add(new Employee() { Name = "Philip", EmpId = "7", ParentId = "4", Designation = "Testing Engineer" }); employees.Add(new Employee() { Name = "Roland", EmpId = "8", ParentId = "3", Designation = "Team Lead" }); employees.Add(new Employee() { Name = "Yoshi", EmpId = "9", ParentId = "3", Designation = "Co-ordinator" }); employees.Add(new Employee() { Name = "Yuonne", EmpId = "10", ParentId = "8", Designation = "Developer" }); employees.Add(new Employee() { Name = "Philip", EmpId = "10", ParentId = "8", Designation = "Testing Engineer" }); //Initializes the DataSourceSettings diagram.DataSourceSettings = new DataSourceSettings() { DataSource = employees, Id = "EmpId", ParentId = "ParentId" }; //Initializes the Layout DirectedTreeLayout treelayout = new DirectedTreeLayout() { HorizontalSpacing = 80, VerticalSpacing = 50 * currentDensity, TreeOrientation = TreeOrientation.TopToBottom }; diagram.LayoutManager = new LayoutManager() { Layout = treelayout }; diagram.BeginNodeRender += Diagram_BeginNodeRender; diagram.Loaded += Diagram_Loaded; LinearLayout linearLayout = new LinearLayout(context) { Orientation = Android.Widget.Orientation.Vertical }; LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); layoutParams.TopMargin = 25 * (int)MainActivity.factor; linearLayout.LayoutParameters = layoutParams; LinearLayout typesBar = new LinearLayout(context); typesBar.SetBackgroundColor(Color.Rgb(245, 245, 245)); layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); typesBar.SetMinimumHeight(200 * (int)MainActivity.factor); typesBar.SetPadding(0, 10 * (int)MainActivity.factor, 0, 10 * (int)MainActivity.factor); TextView selectText = new TextView(context) { LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.MatchParent), Text = "Connector Types:", TextAlignment = TextAlignment.Gravity, Gravity = GravityFlags.Center | GravityFlags.CenterVertical, TextSize = 15 * MainActivity.factor }; int width = (int)(context.Resources.DisplayMetrics.WidthPixels - context.Resources.DisplayMetrics.Density); selectText.SetMinimumWidth((int)(width * 0.4 * MainActivity.factor)); ImageButtonView straightButton = new ImageButtonView(context); straightButton.Click += ButtonTouch; straightButton.ImageId = "DiagramStraight"; straightButton.LayoutParameters = new ViewGroup.LayoutParams(180 * (int)MainActivity.factor, 180 * (int)MainActivity.factor); ImageView straightImage = new ImageView(context); var imageId = straightButton.ImageId + ".png"; if (imageId != null) { var imageData = LoadResource(imageId).ToArray(); straightImage.SetImageBitmap(BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length)); } straightImage.Layout((int)(40 * MainActivity.factor), (int)(40 * MainActivity.factor), (int)(110 * MainActivity.factor), (int)(110 * MainActivity.factor)); straightButton.AddView(straightImage); ImageButtonView curveButton = new ImageButtonView(context); curveButton.Click += ButtonTouch; curveButton.ImageId = "DiagramCurve"; curveButton.LayoutParameters = new ViewGroup.LayoutParams(180 * (int)MainActivity.factor, 180 * (int)MainActivity.factor); ImageView curveImage = new ImageView(context); imageId = curveButton.ImageId + ".png"; if (imageId != null) { var imageData = LoadResource(imageId).ToArray(); curveImage.SetImageBitmap(BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length)); } curveImage.Layout((int)(40 * MainActivity.factor), (int)(40 * MainActivity.factor), (int)(110 * MainActivity.factor), (int)(110 * MainActivity.factor)); curveButton.AddView(curveImage); ImageButtonView edgeButton = new ImageButtonView(context); edgeButton.Click += ButtonTouch; edgeButton.LayoutParameters = new ViewGroup.LayoutParams(180 * (int)MainActivity.factor, 180 * (int)MainActivity.factor); edgeButton.ImageId = "DiagramEdge"; ImageView edgeImage = new ImageView(context); imageId = edgeButton.ImageId + ".png"; if (imageId != null) { var imageData = LoadResource(imageId).ToArray(); edgeImage.SetImageBitmap(BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length)); } edgeImage.Layout((int)(40 * MainActivity.factor), (int)(40 * MainActivity.factor), (int)(110 * MainActivity.factor), (int)(110 * MainActivity.factor)); edgeButton.AddView(edgeImage); buttons = new LinearLayout(context); buttons.SetMinimumWidth((int)(width - width * 0.4 * MainActivity.factor)); buttons.SetBackgroundColor(Color.Transparent); buttons.AddView(straightButton); TextView view = new TextView(context); view.SetWidth(30 * (int)MainActivity.factor); view.SetBackgroundColor(Color.Transparent); buttons.AddView(view); buttons.AddView(curveButton); view = new TextView(context); view.SetWidth(30 * (int)MainActivity.factor); view.SetBackgroundColor(Color.Transparent); buttons.AddView(view); buttons.AddView(edgeButton); typesBar.AddView(selectText); typesBar.AddView(buttons); linearLayout.AddView(typesBar); linearLayout.AddView(diagram); for (int i = 0; i < diagram.Connectors.Count; i++) { diagram.Connectors[i].TargetDecoratorType = DecoratorType.None; diagram.Connectors[i].Style.StrokeWidth = 1; } return(linearLayout); }