using System; using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View { public class Buttons { /// /// 动态加载按钮列表 /// /// 父控件 /// 数据列表 /// 回调 /// 表示多少行 /// 表示一行加载多少个按钮 public void AddButton(FrameLayout buttonFLayout, List buttonList, Action action, int line = 7, int sum = 3) { VerticalScrolViewLayout vv = new VerticalScrolViewLayout(); buttonFLayout.AddChidren(vv); for (int i = 0; i < line; i++) { var currFLayout = new FrameLayout { Height = Application.GetRealHeight(16 + 44) }; vv.AddChidren(currFLayout); for (int a = i * sum + 1, b = 0; a <= buttonList.Count; a++, b++) { var name = buttonList[a - 1]; var nameBtn = new Button { Y = Application.GetRealHeight(16), X = Application.GetRealWidth(24 + (98 + 16) * b), // Gravity=Gravity.CenterVertical, Width = Application.GetRealWidth(98), Height = Application.GetRealHeight(44), Text = name, TextSize = TextSize.text16, TextColor = CSS.CSS_Color.textColor, TextAlignment = TextAlignment.Center, Radius = (uint)Application.GetRealHeight(8), BorderWidth = 1, BorderColor = CSS.CSS_Color.textCancelColor, }; currFLayout.AddChidren(nameBtn); nameBtn.MouseUpEventHandler += (sender, e) => { action(nameBtn.Text); }; if (a % sum == 0) { break; } } if (i == line - 1) { //最后一个元素后面加一个20高度间隔 vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) }); } } } /// /// 动态加载按钮列表 /// /// 父控件 /// 数据列表 /// 回调 /// 表示是否显示删除图标 public void AddButton2(VerticalScrolViewLayout vv, List list, Action action, bool if_bool) { //定义一个变量记录行数 int sum = 0; if (list.Count % 3 == 0) { sum = list.Count / 3; } else { sum = list.Count / 3 + 1; } //计算加载出来的数据需要的高度 int h = 16 + sum * (16 + 44) + 104 + 76; int line = 0; //按钮的父控件 var FLayout = new FrameLayout { Height = Application.GetRealWidth(h), }; vv.AddChidren(FLayout); for (int i = 1, j = 0; i <= list.Count; i++, j++) { var nameObj = list[i - 1]; //按钮 var buttonNameBtn = new Button { Y = Application.GetRealHeight(16 + line * (16 + 44)), X = Application.GetRealWidth(16 + (16 + 104) * j), Width = Application.GetRealWidth(104), Height = Application.GetRealHeight(44), Text = nameObj.value, TextSize = TextSize.text16, TextColor = CSS.CSS_Color.textColor, TextAlignment = TextAlignment.Center, Radius = (uint)Application.GetRealHeight(18), BorderWidth = 1, BorderColor = CSS.CSS_Color.textCancelColor, }; FLayout.AddChidren(buttonNameBtn); //删除图标 var delIconBtn = new Button { UnSelectedImagePath = "PirIcon/delbuton.png", Y = Application.GetRealHeight(12 + line * (16 + 44)), X = Application.GetRealWidth((16 + 92) + (104 + 16) * j), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), Tag = nameObj, }; if (if_bool) { FLayout.AddChidren(delIconBtn); } //删除图标的点击事件 delIconBtn.MouseUpEventHandler += (sender, e) => { var obj = delIconBtn.Tag as Entity.AttributesStatus; action(obj); }; if (i % 3 == 0) { //满一行重置j=0值; j = -1; line += 1; } } } /// /// 动态加载按钮列表 /// /// 父控件 /// 回调 /// 多少个FrameLayout控件 public void AddFrameLayout(FrameLayout FLayout, Action action, int sum) { FrameLayout viewFLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; FLayout.AddChidren(viewFLayout); FrameLayout controlFl = new FrameLayout(); controlFl.Y = Application.GetRealHeight(319); controlFl.X = Application.GetRealWidth(16); controlFl.Width = Application.GetRealWidth(343); controlFl.Height = Application.GetRealHeight(328); controlFl.BackgroundColor = CSS.CSS_Color.view; controlFl.Radius = (uint)Application.GetRealHeight(12); viewFLayout.AddChidren(controlFl); ///添加遥控器 Button text3Btn = new Button { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(343 - 16 * 2), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.Center, TextID = StringId.tianjiayaokongqi, IsBold = true, }; controlFl.AddChidren(text3Btn); viewFLayout.MouseUpEventHandler += (sender1, e1) => { //关闭允许左滑 MainPage.BasePageView.ScrollEnabled = true; viewFLayout.RemoveFromParent(); }; int line = 0; for (int i = 1, j = 0; i <= sum; i++, j++) { var currpirdeviceFLayout = new FrameLayout { Width = Application.GetRealWidth(80), Height = Application.GetRealWidth(80), X = Application.GetRealWidth(26 + (80 + 25) * j), Y = Application.GetRealHeight(52 + (80 + 12) * line), }; controlFl.AddChidren(currpirdeviceFLayout); var deviceIconBtn = new Button { Y = Application.GetRealHeight(8), X = Application.GetRealWidth(20), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "PirIcon/Infraredtreasure.png", }; currpirdeviceFLayout.AddChidren(deviceIconBtn); var iconNameBtn = new Button { Y = deviceIconBtn.Bottom + Application.GetRealHeight(8), Width = Application.GetRealWidth(80), Height = Application.GetRealHeight(17), TextSize = TextSize.text12, TextColor = CSS.CSS_Color.TextualColor, TextAlignment = TextAlignment.Center, }; currpirdeviceFLayout.AddChidren(iconNameBtn); var clickBtn = new Button { Tag = i }; currpirdeviceFLayout.AddChidren(clickBtn); if (i % 3 == 0) { //满一行重置j=0值; j = -1; line += 1; } GetIconAndText(i, deviceIconBtn, iconNameBtn); clickBtn.MouseUpEventHandler += (sender2, e2) => { //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; int if_value = int.Parse(clickBtn.Tag.ToString()); action(if_value, viewFLayout); }; } } /// /// 设置图片和备注 /// /// 索引值 /// 图标Btn /// 设备备注Btn private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn) { string iconPath = ""; int deviceNameIndex = 0; switch (index) { case 1: { iconPath = "PirIcon/air.png"; deviceNameIndex = StringId.kongtiao; } break; case 2: { iconPath = "PirIcon/tv.png"; deviceNameIndex = StringId.dianshi; } break; case 3: { iconPath = "PirIcon/fan.png"; deviceNameIndex = StringId.fengshan; } break; case 4: { iconPath = "PirIcon/stb.png"; deviceNameIndex = StringId.jidinghe; } break; case 5: { iconPath = "PirIcon/projector.png"; deviceNameIndex = StringId.touyingyi; } break; case 6: { iconPath = "PirIcon/dvd.png"; deviceNameIndex = StringId.dvd; } break; case 7: { iconPath = "PirIcon/custom.png"; deviceNameIndex = StringId.zidingyi; } break; } deviceIconBtn.UnSelectedImagePath = iconPath; deviceNameBtn.TextID = deviceNameIndex; } /// /// 获取设备类型str /// /// 索引值 public static string GetTypeString(int index) { string type = ""; switch (index) { case 1: { //空调 type = "ac-" + SPK.AcIr; } break; case 2: { //电视 type = "tv-" + SPK.TvIr; } break; case 3: { //风扇 type = "fan-" + SPK.FanIr; } break; case 4: { //机顶盒 type = "set_top_box-" + SPK.StbIr; } break; case 5: { //投影仪 type = "projector-" + SPK.PjtIr; } break; case 6: { //影碟机 type = "dvd-" + SPK.DvDIr; } break; } return type; } /// /// 获取列表 /// /// 标记值 /// public List GetList(string tag) { List list = new List(); switch (tag) { case "默认按钮": { list.Add(Language.StringByID(StringId.dianyuan)); list.Add(Language.StringByID(StringId.yinliangjia)); list.Add(Language.StringByID(StringId.yinliangjian)); list.Add(Language.StringByID(StringId.pindaojia)); list.Add(Language.StringByID(StringId.pindaojian)); list.Add(Language.StringByID(StringId.shang)); list.Add(Language.StringByID(StringId.xia)); list.Add(Language.StringByID(StringId.zuo)); list.Add(Language.StringByID(StringId.you)); list.Add(Language.StringByID(StringId.jingyin)); list.Add(Language.StringByID(StringId.queren)); list.Add(Language.StringByID(StringId.bofang)); list.Add(Language.StringByID(StringId.xiayibu)); list.Add(Language.StringByID(StringId.tuichu)); list.Add(Language.StringByID(StringId.caidan)); list.Add(Language.StringByID(StringId.zanting)); list.Add(Language.StringByID(StringId.fanhui)); list.Add(Language.StringByID(StringId.tingzhi)); list.Add(Language.StringByID(StringId.zhuye)); list.Add(Language.StringByID(StringId.kuaijin)); list.Add(Language.StringByID(StringId.kuaitui)); list.Add(Language.StringByID(StringId.dingshi)); } break; } return list; } } }