New file |
| | |
| | | using Shared; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.Music; |
| | | using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; |
| | | using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView; |
| | | |
| | | namespace HDL_ON.UI.UI2.FuntionControlView.HisenseTV |
| | | { |
| | | /// <summary> |
| | | /// 海信电视界面 |
| | | /// </summary> |
| | | public class HisenseTvPage : BaseFramLayout |
| | | { |
| | | |
| | | |
| | | #region -------变量声明--------- |
| | | /// <summary> |
| | | /// 设备 |
| | | /// </summary> |
| | | private Function device; |
| | | /// <summary> |
| | | /// 上一级界面的设备名字控件 |
| | | /// </summary> |
| | | private Button btnDeviceName; |
| | | /// <summary> |
| | | /// 上一级界面的房间名字控件 |
| | | /// </summary> |
| | | private Button btnRoomName; |
| | | /// <summary> |
| | | /// 上一级界面的收藏控件 |
| | | /// </summary> |
| | | private Button btnCollectionIcon; |
| | | |
| | | /// <summary> |
| | | /// 头部布局 |
| | | /// </summary> |
| | | private TopView topView; |
| | | BaseFramLayout baseCloseFFL; |
| | | VerticalScrolViewLayout vv; |
| | | /// <summary> |
| | | /// 当前设备名称 |
| | | /// </summary> |
| | | private Button btnOpenCurrDeviceName; |
| | | /// <summary> |
| | | /// 区域 |
| | | /// </summary> |
| | | private Button btnOpenCurrDeviceRoom; |
| | | /// <summary> |
| | | ///收藏图标 |
| | | /// </summary> |
| | | private Button btnOpenCollectIcon; |
| | | CustomFrameLayout shouyeFL; |
| | | CustomFrameLayout kaiguanFL; |
| | | CustomFrameLayout caidanFL; |
| | | Button btn_jia; |
| | | Button btn_jian; |
| | | CustomButton bofangBtn; |
| | | CustomButton zantingBtn; |
| | | CustomButton kuaijinBtn; |
| | | CustomButton kauituiBtn; |
| | | CustomButton jingyinBtn; |
| | | CustomButton shezhiBtn; |
| | | CustomButton jiechujingyinBtn; |
| | | CustomButton fanhuiBtn; |
| | | MenuFramLayout muenFrameLayout; |
| | | SourceFrameLayout sourceFrameLayout; |
| | | |
| | | |
| | | Button btnCloseCollectIcon; |
| | | Button btnCloseCurrDeviceName; |
| | | Button btnCloseCurrDeviceRoom; |
| | | Button clickBtn; |
| | | |
| | | /// <summary> |
| | | /// 表示来自那个界面 |
| | | /// </summary> |
| | | private CommonMethod.Comerom comerom; |
| | | /// <summary> |
| | | /// 删除设备后需要更新界面的回调 |
| | | /// </summary> |
| | | public Action action; |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 构造函数 |
| | | /// </summary> |
| | | /// <param name="function">设备</param> |
| | | /// <param name="btnDeviceName">上一级界面的设备名字控件(注:不能传null,没有可以传new Button())</param> |
| | | /// <param name="btnRoomName">上一级界面的房间名字控件(注:不能传null,没有可以传new Button())</param> |
| | | /// <param name="btnCollectionIcon">上一级界面的房间名字控件(注:不能传null,没有可以传new Button())</param> |
| | | public HisenseTvPage(Function function, Button btnDeviceName, Button btnRoomName, Button btnCollectionIcon, CommonMethod.Comerom comerom, Action action) |
| | | { |
| | | this.device = function; |
| | | this.btnDeviceName = btnDeviceName; |
| | | this.btnRoomName = btnRoomName; |
| | | this.btnCollectionIcon = btnCollectionIcon; |
| | | this.comerom = comerom; |
| | | this.action = action; |
| | | |
| | | } |
| | | |
| | | public void Show() |
| | | { |
| | | //初始化UI |
| | | this.InitTopUI(); |
| | | this.InitOpenUI(); |
| | | this.InitCloseUI(); |
| | | this.CurrentAssignPage(); |
| | | //初始化事件 |
| | | this.EventListener(); |
| | | //读取数据 |
| | | this.ReadData(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 注册事件 |
| | | /// </summary> |
| | | private void EventListener() |
| | | { |
| | | //返回 |
| | | this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | | }; |
| | | //设置 |
| | | this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | //调用秀绕的界面 |
| | | var infoView = new UI.FunctionBaseInfoSetPage(this.device, () => |
| | | { |
| | | if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null) |
| | | { |
| | | return; |
| | | } |
| | | ////刷新显示 |
| | | this.btnDeviceName.Text = this.device.name; |
| | | this.btnRoomName.Text = this.device.GetRoomListName(); |
| | | // |
| | | this.btnOpenCurrDeviceName.Text = this.device.name; |
| | | this.btnOpenCurrDeviceRoom.Text = this.device.GetRoomListName(); |
| | | // |
| | | this.btnCloseCurrDeviceName.Text = this.device.name; |
| | | this.btnCloseCurrDeviceRoom.Text = this.device.GetRoomListName(); |
| | | this.CalculatedPosition();//重新计算宽度 |
| | | |
| | | }); |
| | | infoView.actionDel += () => |
| | | { |
| | | //解绑设备后 |
| | | this.RemoveFromParent(); |
| | | this.action?.Invoke(); |
| | | |
| | | }; |
| | | MainPage.BasePageView.AddChidren(infoView); |
| | | infoView.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | }; |
| | | //收藏 |
| | | this.btnOpenCollectIcon.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | btnOpenCollectIcon.IsSelected = this.device.collect = !btnOpenCollectIcon.IsSelected; |
| | | this.device.CollectFunction(); |
| | | btnCloseCollectIcon.IsSelected = btnOpenCollectIcon.IsSelected; |
| | | this.btnCollectionIcon.IsSelected = btnOpenCollectIcon.IsSelected; |
| | | }; |
| | | |
| | | //首页 |
| | | shouyeFL.SetClickListener((fl, btnImage, btnText) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.home_page, ""); |
| | | }); |
| | | //关机 |
| | | kaiguanFL.SetClickListener((fl, btnImage, btnText) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off", (isBool) => |
| | | { |
| | | if (isBool) |
| | | { |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | vv.Visible = false; |
| | | baseCloseFFL.Visible = true; |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //提示:关机失败; |
| | | } |
| | | }); |
| | | }); |
| | | //菜单 |
| | | caidanFL.SetClickListener((fl, btnImage, btnText) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11"); |
| | | |
| | | }); |
| | | //音量+ |
| | | btn_jia.MouseDownEventHandler += (sender, e) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.volume_add, ""); |
| | | |
| | | }; |
| | | //音量- |
| | | btn_jian.MouseDownEventHandler += (sender, e) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.volume_subtract, ""); |
| | | }; |
| | | //播放 |
| | | bofangBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.media_play, ""); |
| | | |
| | | }); |
| | | //暂停 |
| | | zantingBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.media_pause, ""); |
| | | }); |
| | | //快进 |
| | | kuaijinBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.fast_forward, ""); |
| | | }); |
| | | //快退 |
| | | kauituiBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.fast_back, ""); |
| | | }); |
| | | //静音 |
| | | jingyinBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.mute, "1"); |
| | | }); |
| | | //设置 |
| | | shezhiBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.system_setting, ""); |
| | | }); |
| | | //解除静音 |
| | | jiechujingyinBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.mute, "0"); |
| | | }); |
| | | //返回 |
| | | fanhuiBtn.SetClickListener((btn) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "5"); |
| | | }); |
| | | //上 |
| | | muenFrameLayout.SetTopClickListener((muen) => |
| | | { |
| | | |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "0"); |
| | | |
| | | }); |
| | | //下 |
| | | muenFrameLayout.SetBottomClickListener((muen) => |
| | | { |
| | | |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "1"); |
| | | |
| | | }); |
| | | //左 |
| | | muenFrameLayout.SetLeftClickListener((muen) => |
| | | { |
| | | |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "2"); |
| | | |
| | | }); |
| | | //右 |
| | | muenFrameLayout.SetRightClickListener((muen) => |
| | | { |
| | | |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "3"); |
| | | |
| | | }); |
| | | //OK |
| | | muenFrameLayout.SetOkClickListener((muen) => |
| | | { |
| | | |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "4"); |
| | | |
| | | }); |
| | | //信号源 |
| | | sourceFrameLayout.selectAction += (text) => |
| | | { |
| | | string value = text.Replace(" ", "_"); |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.signal, value); |
| | | }; |
| | | |
| | | |
| | | //收藏(关机) |
| | | this.btnCloseCollectIcon.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | btnCloseCollectIcon.IsSelected = this.device.collect = !btnCloseCollectIcon.IsSelected; |
| | | this.device.CollectFunction(); |
| | | btnOpenCollectIcon.IsSelected = btnCloseCollectIcon.IsSelected; |
| | | this.btnCollectionIcon.IsSelected = btnCloseCollectIcon.IsSelected; |
| | | }; |
| | | //开机 |
| | | clickBtn.MouseDownEventHandler += (sen, e) => |
| | | { |
| | | ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "on", (isBool) => |
| | | { |
| | | if (isBool) |
| | | { |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | vv.Visible = true; |
| | | baseCloseFFL.Visible = false; |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //提示:开机失败; |
| | | } |
| | | }); |
| | | |
| | | }; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 发送控制属性指令 |
| | | /// </summary> |
| | | /// <param name="key">功能属性(语雀上定义的)</param> |
| | | /// <param name="value">值</param> |
| | | /// <param name="action">结果回调(默认不回调)</param> |
| | | private void ControlCommand(string key, string value, Action<bool> action = null) |
| | | { |
| | | try |
| | | { |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | dic.Add(key, value); |
| | | Send.Current.SendControlCommand(this.device, dic, action); |
| | | } |
| | | catch { } |
| | | } |
| | | /// <summary> |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | private void ReadData() |
| | | { |
| | | CommonMethod.Current.Loading.Start(); |
| | | CommonMethod.Current.SunThread(() => |
| | | { |
| | | try |
| | | { |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | }); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | CommonMethod.Current.Loading.Hide(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | #region -------界面布局--------- |
| | | /// <summary> |
| | | /// 初始化【开机】界面 |
| | | /// </summary> |
| | | private void InitOpenUI() |
| | | { |
| | | #region ---界面布局--- |
| | | vv = new VerticalScrolViewLayout |
| | | { |
| | | Y = topView.fLayout.Bottom, |
| | | Height = Application.GetRealHeight(H_W.H - H_W.T_Height), |
| | | }; |
| | | this.AddChidren(vv); |
| | | var baseOpenFL = new BaseFramLayout(); |
| | | vv.AddChidren(baseOpenFL); |
| | | var backgroundOpenFl = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(24), |
| | | X = Application.GetRealWidth(24), |
| | | Height = Application.GetRealHeight(648), |
| | | Width = Application.GetRealWidth(327), |
| | | BackgroundImagePath = "HisenseTv/onbj.png", |
| | | }; |
| | | baseOpenFL.AddChidren(backgroundOpenFl); |
| | | |
| | | baseOpenFL.AdjustRealHeight(16); |
| | | |
| | | btnOpenCollectIcon = new Button |
| | | { |
| | | X = Application.GetRealWidth(273), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(40), |
| | | UnSelectedImagePath = "MusicIcon/collect.png", |
| | | SelectedImagePath = "MusicIcon/collectSelected.png", |
| | | IsSelected = this.device.collect, |
| | | }; |
| | | backgroundOpenFl.AddChidren(btnOpenCollectIcon); |
| | | |
| | | btnOpenCurrDeviceName = new Button |
| | | { |
| | | TextSize = TextSize.Text24, |
| | | TextColor = MusicColor.Text18Color, |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealHeight(33), |
| | | Y = Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(16), |
| | | Text = this.device.name, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | IsBold = true |
| | | }; |
| | | backgroundOpenFl.AddChidren(btnOpenCurrDeviceName); |
| | | |
| | | |
| | | btnOpenCurrDeviceRoom = new Button |
| | | { |
| | | TextSize = TextSize.Text12, |
| | | TextColor = MusicColor.MusicNoTxetColor, |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealHeight(17), |
| | | Y = btnOpenCurrDeviceName.Bottom + Application.GetRealHeight(4), |
| | | X = Application.GetRealWidth(16), |
| | | Text = this.device.GetRoomListName(), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | backgroundOpenFl.AddChidren(btnOpenCurrDeviceRoom); |
| | | |
| | | int yHeight = btnOpenCurrDeviceRoom.Bottom + Application.GetRealHeight(16); |
| | | shouyeFL = new CustomFrameLayout(); |
| | | backgroundOpenFl.AddChidren(shouyeFL); |
| | | shouyeFL.X = Application.GetRealWidth(24); |
| | | shouyeFL.Y = yHeight; |
| | | shouyeFL.AddImageView(); |
| | | shouyeFL.AddTextButtonView(); |
| | | shouyeFL.GetImageButton().UnSelectedImagePath = "HisenseTv/shouye.png"; |
| | | shouyeFL.GetTextButton().TextID = StringId.shouye; |
| | | |
| | | |
| | | kaiguanFL = new CustomFrameLayout(); |
| | | backgroundOpenFl.AddChidren(kaiguanFL); |
| | | kaiguanFL.X = shouyeFL.Right + Application.GetRealWidth(37); |
| | | kaiguanFL.Y = yHeight; |
| | | kaiguanFL.AddImageView(); |
| | | kaiguanFL.AddTextButtonView(); |
| | | kaiguanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kaiguan.png"; |
| | | kaiguanFL.GetTextButton().TextID = StringId.guanji; |
| | | |
| | | caidanFL = new CustomFrameLayout(); |
| | | backgroundOpenFl.AddChidren(caidanFL); |
| | | caidanFL.X = kaiguanFL.Right + Application.GetRealWidth(37); |
| | | caidanFL.Y = yHeight; |
| | | caidanFL.AddImageView(); |
| | | caidanFL.AddTextButtonView(); |
| | | caidanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png"; |
| | | caidanFL.GetTextButton().TextID = StringId.caidan; |
| | | |
| | | var yinliangFL = new FrameLayout(); |
| | | backgroundOpenFl.AddChidren(yinliangFL); |
| | | yinliangFL.Height = Application.GetRealHeight(200); |
| | | yinliangFL.Width = Application.GetRealWidth(68); |
| | | yinliangFL.Y = shouyeFL.Bottom + Application.GetRealHeight(24); |
| | | yinliangFL.X = shouyeFL.X; |
| | | yinliangFL.BackgroundColor = 0xffF2F3F7; |
| | | yinliangFL.Radius = (uint)Application.GetRealHeight(34); |
| | | |
| | | btn_jia = new Button |
| | | { |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "HisenseTv/yingliangjia.png", |
| | | Y = Application.GetRealHeight(20), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | |
| | | }; |
| | | yinliangFL.AddChidren(btn_jia); |
| | | Button btnText = new Button |
| | | { |
| | | Y = Application.GetRealHeight(90), |
| | | Height = Application.GetRealHeight(20), |
| | | //Text = "音量", |
| | | TextID = StringId.yinliang, |
| | | TextColor = MusicColor.TextColor, |
| | | TextSize = TextSize.Text14, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | |
| | | }; |
| | | yinliangFL.AddChidren(btnText); |
| | | btn_jian = new Button |
| | | { |
| | | Y = Application.GetRealHeight(148), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "HisenseTv/yingliangjian.png", |
| | | Gravity = Gravity.CenterHorizontal, |
| | | |
| | | }; |
| | | yinliangFL.AddChidren(btn_jian); |
| | | btn_jia.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | |
| | | }; |
| | | btn_jian.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | |
| | | }; |
| | | |
| | | bofangBtn = new CustomButton(); |
| | | bofangBtn.TextID = StringId.bofang; |
| | | bofangBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24); |
| | | bofangBtn.X = yinliangFL.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(bofangBtn); |
| | | |
| | | |
| | | zantingBtn = new CustomButton(); |
| | | zantingBtn.TextID = StringId.zanting; |
| | | zantingBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24); |
| | | zantingBtn.X = bofangBtn.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(zantingBtn); |
| | | |
| | | |
| | | kuaijinBtn = new CustomButton(); |
| | | kuaijinBtn.TextID = StringId.kuaijin; |
| | | kuaijinBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16); |
| | | kuaijinBtn.X = yinliangFL.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(kuaijinBtn); |
| | | |
| | | |
| | | kauituiBtn = new CustomButton(); |
| | | kauituiBtn.TextID = StringId.kuaitui; |
| | | kauituiBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16); |
| | | kauituiBtn.X = kuaijinBtn.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(kauituiBtn); |
| | | |
| | | |
| | | |
| | | |
| | | jingyinBtn = new CustomButton(); |
| | | jingyinBtn.TextID = StringId.jingyin; |
| | | jingyinBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16); |
| | | jingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(jingyinBtn); |
| | | |
| | | |
| | | shezhiBtn = new CustomButton(); |
| | | shezhiBtn.TextID = StringId.shezhi; |
| | | shezhiBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16); |
| | | shezhiBtn.X = jingyinBtn.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(shezhiBtn); |
| | | |
| | | |
| | | |
| | | jiechujingyinBtn = new CustomButton(); |
| | | jiechujingyinBtn.TextID = StringId.jiechujingyin; |
| | | jiechujingyinBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16); |
| | | jiechujingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(jiechujingyinBtn); |
| | | |
| | | |
| | | fanhuiBtn = new CustomButton(); |
| | | fanhuiBtn.TextID = StringId.fanhui; |
| | | fanhuiBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16); |
| | | fanhuiBtn.X = jiechujingyinBtn.Right + Application.GetRealWidth(37); |
| | | backgroundOpenFl.AddChidren(fanhuiBtn); |
| | | |
| | | |
| | | TypeFrameLayout typeFrameLayout = new TypeFrameLayout(); |
| | | typeFrameLayout.middLayout.Y = yinliangFL.Bottom + Application.GetRealHeight(32); |
| | | typeFrameLayout.AddView(backgroundOpenFl); |
| | | |
| | | muenFrameLayout = new MenuFramLayout(); |
| | | muenFrameLayout.Y = Application.GetRealHeight(482); |
| | | muenFrameLayout.AddView(backgroundOpenFl); |
| | | |
| | | sourceFrameLayout = new SourceFrameLayout(); |
| | | sourceFrameLayout.Y = Application.GetRealHeight(482); |
| | | backgroundOpenFl.AddChidren(sourceFrameLayout); |
| | | sourceFrameLayout.LoadSourcePage(); |
| | | |
| | | |
| | | |
| | | muenFrameLayout.Visible = true; |
| | | sourceFrameLayout.Visible = false; |
| | | typeFrameLayout.SetLfteClickListener(() => |
| | | { |
| | | |
| | | muenFrameLayout.Visible = true; |
| | | sourceFrameLayout.Visible = false; |
| | | }); |
| | | typeFrameLayout.SetRightClickListener(() => |
| | | { |
| | | muenFrameLayout.Visible = false; |
| | | sourceFrameLayout.Visible = true; |
| | | |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 初始化【关机】界面 |
| | | /// </summary> |
| | | private void InitCloseUI() |
| | | { |
| | | #region ---界面布局--- |
| | | |
| | | baseCloseFFL = new BaseFramLayout |
| | | { |
| | | Y = topView.fLayout.Bottom, |
| | | Height = Application.GetRealHeight(H_W.H - H_W.T_Height), |
| | | }; |
| | | this.AddChidren(baseCloseFFL); |
| | | var backgroundCloseFl = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(24), |
| | | X = Application.GetRealWidth(24), |
| | | Height = Application.GetRealHeight(526), |
| | | Width = Application.GetRealWidth(327), |
| | | BackgroundImagePath = "HisenseTv/offbj.png", |
| | | }; |
| | | baseCloseFFL.AddChidren(backgroundCloseFl); |
| | | baseCloseFFL.AdjustRealHeight(16); |
| | | |
| | | btnCloseCollectIcon = new Button |
| | | { |
| | | X = Application.GetRealWidth(273), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(40), |
| | | UnSelectedImagePath = "MusicIcon/collect.png", |
| | | SelectedImagePath = "MusicIcon/collectSelected.png", |
| | | IsSelected = this.device.collect, |
| | | }; |
| | | backgroundCloseFl.AddChidren(btnCloseCollectIcon); |
| | | |
| | | btnCloseCurrDeviceName = new Button |
| | | { |
| | | TextSize = TextSize.Text24, |
| | | TextColor = MusicColor.Text18Color, |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealHeight(33), |
| | | Y = Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(16), |
| | | Text = this.device.name, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | IsBold = true |
| | | }; |
| | | backgroundCloseFl.AddChidren(btnCloseCurrDeviceName); |
| | | |
| | | |
| | | btnCloseCurrDeviceRoom = new Button |
| | | { |
| | | TextSize = TextSize.Text12, |
| | | TextColor = MusicColor.MusicNoTxetColor, |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealHeight(17), |
| | | Y = btnCloseCurrDeviceName.Bottom + Application.GetRealHeight(4), |
| | | X = Application.GetRealWidth(16), |
| | | Text = this.device.GetRoomListName(), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | backgroundCloseFl.AddChidren(btnCloseCurrDeviceRoom); |
| | | |
| | | var btnOffTvBj = new Button |
| | | { |
| | | Y = Application.GetRealHeight(108), |
| | | Height = Application.GetRealWidth(198), |
| | | Width = Application.GetRealWidth(198), |
| | | UnSelectedImagePath = "HisenseTv/offtvbj.png", |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | | backgroundCloseFl.AddChidren(btnOffTvBj); |
| | | |
| | | |
| | | var btnText = new Button |
| | | { |
| | | Y = btnOffTvBj.Bottom + Application.GetRealHeight(20), |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(22), |
| | | TextSize = TextSize.Text16, |
| | | TextColor = MusicColor.TextColor, |
| | | //Text = "已关机", |
| | | TextID = StringId.yiguanji, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Padding = new Padding(0, 16, 0, 16), |
| | | |
| | | }; |
| | | backgroundCloseFl.AddChidren(btnText); |
| | | |
| | | |
| | | var offFl = new FrameLayout |
| | | { |
| | | Y = btnText.Bottom + Application.GetRealHeight(91), |
| | | Width = Application.GetRealHeight(32), |
| | | Height = Application.GetRealWidth(32 + 20), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | | backgroundCloseFl.AddChidren(offFl); |
| | | |
| | | var btnOffIcon = new Button |
| | | { |
| | | Height = Application.GetRealWidth(32), |
| | | Width = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "HisenseTv/on.png", |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | | offFl.AddChidren(btnOffIcon); |
| | | |
| | | var btnOffText = new Button |
| | | { |
| | | Y = btnOffIcon.Bottom + Application.GetRealHeight(4), |
| | | Height = Application.GetRealHeight(16), |
| | | TextSize = TextSize.Text12, |
| | | TextColor = MusicColor.TextCancelColor, |
| | | TextID = StringId.kaiji, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Padding = new Padding(0, 2, 0, 2), |
| | | }; |
| | | offFl.AddChidren(btnOffText); |
| | | |
| | | clickBtn = new Button |
| | | { |
| | | Width = Application.GetRealHeight(32), |
| | | Height = Application.GetRealWidth(32 + 20), |
| | | }; |
| | | offFl.AddChidren(clickBtn); |
| | | #endregion |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 初始化头部 |
| | | /// </summary> |
| | | private void InitTopUI() |
| | | { |
| | | this.BackgroundColor = MusicColor.ViewColor; |
| | | this.topView = new TopView(); |
| | | this.topView.setBtn.Visible = true; |
| | | this.topView.topNameBtn.TextID = StringId.dianshi; |
| | | this.AddChidren(topView.TopFLayoutView()); |
| | | } |
| | | /// <summary> |
| | | /// 根据设备开关状态显示指定界面 |
| | | /// (进来的时候用到) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void CurrentAssignPage() |
| | | { |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | |
| | | if (this.device == null) |
| | | { |
| | | vv.Visible = false; |
| | | baseCloseFFL.Visible = true; |
| | | return; |
| | | } |
| | | if (this.device.GetAttrState("on_off") == "on" || this.device.GetAttrState("on_off") == "1") |
| | | { |
| | | vv.Visible = true; |
| | | baseCloseFFL.Visible = false; |
| | | } |
| | | else |
| | | { |
| | | vv.Visible = false; |
| | | baseCloseFFL.Visible = true; |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重新计算宽度(设备名称,房间控件) |
| | | /// </summary> |
| | | private void CalculatedPosition() |
| | | { |
| | | //开机状态 |
| | | this.btnOpenCurrDeviceName.Width = this.btnOpenCurrDeviceName.GetTextWidth(); |
| | | this.btnOpenCurrDeviceName.Width += 10; |
| | | if (this.btnOpenCurrDeviceName.GetTextWidth() > this.btnOpenCollectIcon.X) |
| | | { |
| | | //重新计算宽度 |
| | | this.btnOpenCurrDeviceName.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-10); |
| | | } |
| | | this.btnOpenCurrDeviceRoom.Width = this.btnOpenCurrDeviceRoom.GetTextWidth(); |
| | | this.btnOpenCurrDeviceRoom.Width += 10; |
| | | if (this.btnOpenCurrDeviceRoom.GetTextWidth() > this.btnOpenCollectIcon.X) |
| | | { |
| | | //重新计算宽度 |
| | | this.btnOpenCurrDeviceRoom.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-20 - 10); |
| | | } |
| | | |
| | | |
| | | //关机状态 |
| | | this.btnCloseCurrDeviceName.Width = this.btnCloseCurrDeviceName.GetTextWidth(); |
| | | this.btnCloseCurrDeviceName.Width += 10; |
| | | if (this.btnCloseCurrDeviceName.GetTextWidth() > this.btnCloseCollectIcon.X) |
| | | { |
| | | //重新计算宽度 |
| | | this.btnCloseCurrDeviceName.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-10); |
| | | } |
| | | this.btnCloseCurrDeviceRoom.Width = this.btnCloseCurrDeviceRoom.GetTextWidth(); |
| | | this.btnCloseCurrDeviceRoom.Width += 10; |
| | | if (this.btnCloseCurrDeviceRoom.GetTextWidth() > this.btnCloseCollectIcon.X) |
| | | { |
| | | //重新计算宽度 |
| | | this.btnCloseCurrDeviceRoom.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-20 - 10); |
| | | } |
| | | //this.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | #region -------自定义当前界面的容器--------- |
| | | /// <summary> |
| | | /// 自定义(首页,关机,菜单)容器 |
| | | /// </summary> |
| | | class CustomFrameLayout : FrameLayout |
| | | { |
| | | public const int widthFrameLayout = 68; |
| | | public const int heightFrameLayout = 68 + 8 + 20; |
| | | public const int interval = 37;//行中的列间隔值 |
| | | |
| | | public CustomFrameLayout(int width = widthFrameLayout, int height = heightFrameLayout) |
| | | { |
| | | this.Width = Application.GetRealWidth(width); |
| | | this.Height = Application.GetRealHeight(height); |
| | | } |
| | | Button btnImage = new Button |
| | | { |
| | | Width = Application.GetRealWidth(68), |
| | | Height = Application.GetRealWidth(68), |
| | | Gravity = Gravity.TopCenter, |
| | | Name = "btnImage", |
| | | |
| | | }; |
| | | Button btnText = new Button |
| | | { |
| | | Width = Application.GetRealWidth(68), |
| | | Height = Application.GetRealWidth(20), |
| | | TextID = StringId.dangqianmenweiguan, |
| | | TextSize = TextSize.Text14, |
| | | TextColor = MusicColor.TextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Name = "btnText", |
| | | IsMoreLines = true, |
| | | }; |
| | | public void AddImageView() |
| | | { |
| | | this.AddChidren(btnImage); |
| | | } |
| | | public void AddTextButtonView() |
| | | { |
| | | btnText.Y = Application.GetRealHeight(8) + btnImage.Bottom; |
| | | this.AddChidren(btnText); |
| | | } |
| | | public Button GetImageButton() |
| | | { |
| | | return this.btnImage; |
| | | } |
| | | public Button GetTextButton() |
| | | { |
| | | return this.btnText; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 事件监听方法 |
| | | /// </summary> |
| | | /// <param name="action">回调(第一个是父类对象;第二个是图标对象;第三个是状态对象</param> |
| | | /// <param name="button1">注意:在SetClickListener()前面调用AddImageView()才有效</param> |
| | | /// <param name="button2">注意:在SetClickListener()前面调用AddImageView()才有效</param> |
| | | public void SetClickListener(Action<FrameLayout, Button, Button> action) |
| | | { |
| | | EventHandler<MouseEventArgs> DownClick = (sender, e) => |
| | | { |
| | | //this.BackgroundColor = 0xFFF2F3F7; |
| | | action?.Invoke(this, btnImage, btnText); |
| | | }; |
| | | this.MouseDownEventHandler += DownClick; |
| | | btnImage.MouseDownEventHandler += DownClick; |
| | | btnText.MouseDownEventHandler += DownClick; |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> UpClick = (sender, e) => |
| | | { |
| | | //this.BackgroundColor = 0x00000000; |
| | | }; |
| | | this.MouseUpEventHandler += UpClick; |
| | | btnImage.MouseUpEventHandler += UpClick; |
| | | btnText.MouseUpEventHandler += UpClick; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 按键容器 |
| | | /// </summary> |
| | | class CustomButton : Button |
| | | { |
| | | |
| | | public CustomButton() |
| | | { |
| | | |
| | | this.Width = Application.GetRealWidth(68); |
| | | this.Height = Application.GetRealHeight(38); |
| | | this.TextSize = 14; |
| | | this.TextColor = MusicColor.TextColor; |
| | | this.TextAlignment = TextAlignment.Center; |
| | | this.IsMoreLines = true; |
| | | this.BackgroundColor = 0xffECEDEE; |
| | | this.Radius = (uint)Application.GetRealHeight(30); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 事件监听方法 |
| | | /// </summary> |
| | | /// <param name="action">回调(第一个是父类对象</param> |
| | | public void SetClickListener(Action<Button> action) |
| | | { |
| | | EventHandler<MouseEventArgs> DownClick = (sender, e) => |
| | | { |
| | | this.BackgroundColor = 0xFFF2F3F7; |
| | | action?.Invoke(this); |
| | | }; |
| | | this.MouseDownEventHandler += DownClick; |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> UpClick = (sender, e) => |
| | | { |
| | | this.BackgroundColor = 0xffECEDEE; |
| | | }; |
| | | this.MouseUpEventHandler += UpClick; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 类型(控制 信号源)容器 |
| | | /// </summary> |
| | | class TypeFrameLayout |
| | | { |
| | | #region ----控制 信号源---- |
| | | public FrameLayout middLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(29), |
| | | Y = Application.GetRealHeight(32), |
| | | }; |
| | | |
| | | |
| | | FrameLayout leftLayout = new FrameLayout |
| | | { |
| | | X = Application.GetRealWidth(42), |
| | | Height = Application.GetRealHeight(29), |
| | | Width = Application.GetRealWidth(32), |
| | | |
| | | }; |
| | | |
| | | |
| | | Button leftBtnTitle = new Button |
| | | { |
| | | Height = Application.GetRealHeight(23), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = MusicColor.TextColor, |
| | | SelectedTextColor = MusicColor.MusicTxet14SelectedColor, |
| | | TextSize = TextSize.Text16, |
| | | TextID = StringId.kongzhi, |
| | | IsBold = true, |
| | | }; |
| | | |
| | | |
| | | |
| | | Button leftBtnLine = new Button |
| | | { |
| | | |
| | | Height = Application.GetRealHeight(2), |
| | | BackgroundColor = MusicColor.TextColor, |
| | | SelectedBackgroundColor = MusicColor.MusicTxet14SelectedColor, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | | |
| | | //频道点击控件 |
| | | FrameLayout clickLeftLayout = new FrameLayout |
| | | { |
| | | |
| | | }; |
| | | |
| | | |
| | | FrameLayout rightLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(48), |
| | | }; |
| | | Button rightBtnTitle = new Button |
| | | { |
| | | Height = Application.GetRealHeight(23), |
| | | Width = Application.GetRealWidth(48), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = MusicColor.TextColor, |
| | | SelectedTextColor = MusicColor.MusicTxet14SelectedColor, |
| | | TextSize = TextSize.Text16, |
| | | Text = "信号源", |
| | | IsBold = true, |
| | | }; |
| | | |
| | | Button rightBtnLine = new Button |
| | | { |
| | | Height = Application.GetRealHeight(2), |
| | | BackgroundColor = MusicColor.TextColor, |
| | | SelectedBackgroundColor = MusicColor.MusicTxet14SelectedColor, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | | |
| | | |
| | | //信号源点击控件 |
| | | FrameLayout clickRightLayout = new FrameLayout |
| | | { |
| | | |
| | | }; |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="layout"></param> |
| | | public void AddView(FrameLayout layout) |
| | | { |
| | | layout.AddChidren(middLayout); |
| | | middLayout.AddChidren(leftLayout); |
| | | |
| | | leftLayout.AddChidren(leftBtnTitle); |
| | | leftLayout.AddChidren(leftBtnLine); |
| | | leftLayout.AddChidren(clickLeftLayout); |
| | | middLayout.AddChidren(rightLayout); |
| | | rightLayout.AddChidren(rightBtnTitle); |
| | | rightLayout.AddChidren(rightBtnLine); |
| | | rightLayout.AddChidren(clickRightLayout); |
| | | |
| | | leftBtnTitle.Width = leftLayout.Width; |
| | | leftBtnLine.Y = leftBtnTitle.Bottom + Application.GetRealHeight(4); |
| | | if (leftBtnTitle.GetTextWidth() < leftBtnTitle.Width) |
| | | { |
| | | leftBtnTitle.Width = leftBtnTitle.GetTextWidth(); |
| | | } |
| | | leftBtnLine.Width = leftBtnTitle.Width; |
| | | |
| | | clickLeftLayout.Height = leftLayout.Height; |
| | | clickLeftLayout.Width = leftLayout.Width; |
| | | |
| | | |
| | | rightLayout.X = leftLayout.Right + Application.GetRealWidth(171); |
| | | rightLayout.Y = leftLayout.Y; |
| | | rightLayout.Height = leftLayout.Height; |
| | | |
| | | |
| | | |
| | | rightBtnLine.Y = rightBtnTitle.Bottom + Application.GetRealHeight(4); |
| | | |
| | | if (rightBtnTitle.GetTextWidth() < rightBtnTitle.Width) |
| | | { |
| | | rightBtnTitle.Width = rightBtnTitle.GetTextWidth(); |
| | | } |
| | | rightBtnLine.Width = rightBtnTitle.Width; |
| | | |
| | | clickRightLayout.Height = leftLayout.Height; |
| | | clickRightLayout.Width = leftLayout.Width; |
| | | |
| | | |
| | | |
| | | //初始值 |
| | | leftBtnTitle.IsSelected = true; |
| | | leftBtnLine.IsSelected = true; |
| | | leftBtnLine.Visible = true; |
| | | rightBtnTitle.IsSelected = false; |
| | | rightBtnLine.IsSelected = false; |
| | | rightBtnLine.Visible = false; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 控制监听方法 |
| | | /// </summary> |
| | | public void SetLfteClickListener(Action action) |
| | | { |
| | | //点击事件 |
| | | clickLeftLayout.MouseDownEventHandler += (sen, e) => |
| | | { |
| | | leftBtnTitle.IsSelected = true; |
| | | leftBtnLine.IsSelected = true; |
| | | leftBtnLine.Visible = true; |
| | | rightBtnTitle.IsSelected = false; |
| | | rightBtnLine.IsSelected = false; |
| | | rightBtnLine.Visible = false; |
| | | action?.Invoke(); |
| | | }; |
| | | } |
| | | /// <summary> |
| | | /// 信号源监听方法 |
| | | /// </summary> |
| | | public void SetRightClickListener(Action action) |
| | | { |
| | | |
| | | //点击事件 |
| | | clickRightLayout.MouseDownEventHandler += (sen, e) => |
| | | { |
| | | leftBtnTitle.IsSelected = false; |
| | | leftBtnLine.IsSelected = false; |
| | | leftBtnLine.Visible = false; |
| | | rightBtnTitle.IsSelected = true; |
| | | rightBtnLine.IsSelected = true; |
| | | rightBtnLine.Visible = true; |
| | | action?.Invoke(); |
| | | |
| | | |
| | | }; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 信号源容器 |
| | | /// </summary> |
| | | class SourceFrameLayout : FrameLayout |
| | | { |
| | | public const int widthFrameLayout = 375; |
| | | public const int heightFrameLayout = 146; |
| | | public const int interval = 37;//行中的列间隔值 |
| | | |
| | | public Action<string> selectAction; |
| | | |
| | | public SourceFrameLayout(int width = widthFrameLayout, int height = heightFrameLayout) |
| | | { |
| | | this.Width = Application.GetRealWidth(width); |
| | | this.Height = Application.GetRealHeight(height); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 动态加载图片界面 |
| | | /// </summary> |
| | | public void LoadSourcePage() |
| | | { |
| | | var mList = GetList(); |
| | | int currnetheightValue = 0; |
| | | int currnetWidthValue = 0; |
| | | int heightMaxValue = 38; |
| | | int widthMaxValue = 68; |
| | | //获取相对一个纬度值 |
| | | int widthDimensionValue = this.Width - Application.GetRealWidth(24) - Application.GetRealWidth(24) - Application.GetRealHeight(widthMaxValue / 2); |
| | | for (int i = 0; i < mList.Count; i++) |
| | | { |
| | | var source = mList[i]; |
| | | CustomButton button = new CustomButton(); |
| | | this.AddChidren(button); |
| | | button.Tag = source; |
| | | button.Y = Application.GetRealHeight(currnetheightValue); |
| | | button.X = Application.GetRealWidth(24) + Application.GetRealWidth(currnetWidthValue); |
| | | button.Text = source; |
| | | currnetWidthValue += (widthMaxValue + 37);//37是隔间值 |
| | | if (widthDimensionValue < Application.GetRealWidth(currnetWidthValue)) |
| | | { |
| | | currnetheightValue += (heightMaxValue + 16);//16是隔间值 |
| | | currnetWidthValue = 0; |
| | | } |
| | | |
| | | button.SetClickListener((btn) => |
| | | { |
| | | // MovieLibrary movieLibrary = new MovieLibrary(); |
| | | |
| | | selectAction?.Invoke(button.Text); |
| | | }); |
| | | //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i) |
| | | //{ |
| | | // selectImageAction?.Invoke((int)imageFram.Tag); |
| | | //} |
| | | } |
| | | |
| | | } |
| | | private List<string> GetList() |
| | | { |
| | | return new List<string> |
| | | { |
| | | "HDML 1",//" " |
| | | "HDML 2", |
| | | "HDML 3", |
| | | "HDML 4", |
| | | "Live TV", |
| | | "PS", |
| | | "AV", |
| | | }; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |