| | |
| | | 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 |
| | |
| | | /// <param name="buttonList">数据列表</param> |
| | | /// <param name="action">回调</param> |
| | | /// <param name="line">表示多少行</param> |
| | | /// <param name="line">表示一行加载多少个按钮</param> |
| | | /// <param name="sum">表示一行加载多少个按钮</param> |
| | | public void AddButton(FrameLayout buttonFLayout, List<string> buttonList, Action<string> action, int line = 7, int sum = 3) |
| | | { |
| | | VerticalScrolViewLayout vv = new VerticalScrolViewLayout(); |
| | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 动态加载按钮列表 |
| | | /// </summary> |
| | | /// <param name="vv">父控件</param> |
| | | /// <param name="list">数据列表</param> |
| | | /// <param name="action">回调</param> |
| | | /// <param name="if_bool">表示是否显示删除图标</param> |
| | | public void AddButton2(VerticalScrolViewLayout vv, List<Entity.AttributesStatus> list, Action<Entity.AttributesStatus> 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; |
| | | } |
| | | |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 动态加载按钮列表 |
| | | /// </summary> |
| | | /// <param name="FLayout">父控件</param> |
| | | /// <param name="action">回调</param> |
| | | /// <param name="sum">多少个FrameLayout控件</param> |
| | | public void AddFrameLayout(FrameLayout FLayout, Action<int,FrameLayout> 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); |
| | | |
| | | }; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 设置图片和备注 |
| | | /// </summary> |
| | | /// <param name="index">索引值</param> |
| | | /// <param name="deviceIconBtn">图标Btn</param> |
| | | /// <param name="deviceNameBtn">设备备注Btn</param> |
| | | 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; |
| | | } |
| | | /// <summary> |
| | | /// 获取设备类型str |
| | | /// </summary> |
| | | /// <param name="index">索引值</param> |
| | | 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; |
| | | } |
| | | /// <summary> |
| | | /// 获取列表 |
| | | /// </summary> |
| | | /// <param name="tag">标记值</param> |