From d4973876384be55df64de45db8a511d1e0330872 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 23 六月 2021 17:06:20 +0800 Subject: [PATCH] 房间小图列表 --- HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs | 571 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 401 insertions(+), 170 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs index 2f3552a..214f4d8 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs @@ -184,16 +184,22 @@ /// <summary> /// 鏄剧ず鏂瑰紡鍒囨崲鎸夐挳 /// </summary> - //btnSwitchDipaly = new Button() - //{ - // X = Application.GetRealWidth(335), - // Y = Application.GetRealHeight(12), - // Width = Application.GetMinRealAverage(28), - // Height = Application.GetMinRealAverage(28), - // UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥� - // SelectedImagePath = "Classification/ToggleDisplayLarge.png", - //}; - //roomFloorChangeView.AddChidren(btnSwitchDipaly); + btnSwitchDipaly = new Button() + { + X = Application.GetRealWidth(335), + Y = Application.GetRealHeight(12), + Width = Application.GetMinRealAverage(28), + Height = Application.GetMinRealAverage(28), + UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥� + SelectedImagePath = "Classification/ToggleDisplayLarge.png", + IsSelected = OnAppConfig.Instance.IsShowBigPicture + }; + roomFloorChangeView.AddChidren(btnSwitchDipaly); + btnSwitchDipaly.MouseUpEventHandler = (sender, e) => { + OnAppConfig.Instance.IsShowBigPicture = !OnAppConfig.Instance.IsShowBigPicture; + btnSwitchDipaly.IsSelected = OnAppConfig.Instance.IsShowBigPicture; + LoadRoomRows(true); + }; #endregion /// <summary> @@ -216,181 +222,406 @@ /// <summary> /// 鍔犺浇鎴块棿鍒楄〃鍖哄煙 /// </summary> - void LoadRoomRows() + /// <param name="animationEffect">鍔ㄧ敾鏁堟灉</param> + void LoadRoomRows(bool animationEffect = false) { - roomListView.RemoveAll(); - foreach (var room in roomsShowed) + if (animationEffect) { - var roomView = new FrameLayout() + ///绉诲姩鏂瑰悜 + var runDirection = OnAppConfig.Instance.IsShowBigPicture ? 1 : -1; + for (int i = 0; i < roomListView.ChildrenCount; i++) { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 - Radius = (uint)Application.GetRealWidth(12), - Tag = room.roomId, - }; - roomListView.AddChidren(roomView); + var childView = roomListView.GetChildren(i); - var roomViewbg = new ImageView() - { - Width = Application.GetRealWidth(343), - Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 - //ImagePath = room.backgroundImage, - Radius = (uint)Application.GetRealWidth(12), - }; - roomView.AddChidren(roomViewbg); - - //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶 - ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); - - var roomViewbgColor = new Button() - { - Radius = (uint)Application.GetRealWidth(12), - BackgroundColor = 0x19333333, - }; - roomView.AddChidren(roomViewbgColor); - - var btnFloorAndRoomName = new Button() - { - X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(12 - 2), - Width = Application.GetRealWidth(266), - Height = Application.GetRealHeight(22 + 2 + 2), - Text = room.floorName + room.roomName, - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.MainBackgroundColor, - TextSize = CSS_FontSize.SubheadingFontSize, - }; - roomView.AddChidren(btnFloorAndRoomName); - - #region 鐜鏁版嵁 - //var environmentalView = new FrameLayout() - //{ - // Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom, - // Height = Application.GetRealHeight(32), - // Tag = "EnvironmentalView", - //}; - //roomView.AddChidren(environmentalView); - - //Button btnTempIcon = new Button() - //{ - // X = Application.GetRealWidth(12), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetMinRealAverage(16), - // Height = Application.GetMinRealAverage(16), - // UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png", - //}; - //environmentalView.AddChidren(btnTempIcon); - - //var btnTempValues = new Button() - //{ - // X = btnTempIcon.Right + Application.GetRealWidth(4), - // Width = Application.GetRealWidth(30), - // Gravity = Gravity.CenterVertical, - // TextColor = CSS_Color.MainBackgroundColor, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // Text = "--掳", - // TextAlignment = TextAlignment.CenterLeft, - // Tag = "TempValues" - //}; - //environmentalView.AddChidren(btnTempValues); - - //Button btnHumidityIcon = new Button() - //{ - // X = btnTempValues.Right + Application.GetRealWidth(2), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetMinRealAverage(16), - // Height = Application.GetMinRealAverage(16), - // UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png", - //}; - //environmentalView.AddChidren(btnHumidityIcon); - - //var btnHumidityValues = new Button() - //{ - // X = btnHumidityIcon.Right + Application.GetRealWidth(4), - // Width = Application.GetRealWidth(30), - // Gravity = Gravity.CenterVertical, - // TextColor = CSS_Color.MainBackgroundColor, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // Text = "--%", - // TextAlignment = TextAlignment.CenterLeft, - // Tag = "HumidityValues" - //}; - //environmentalView.AddChidren(btnHumidityValues); - - //Button btnPm25Icon = new Button() - //{ - // X = btnHumidityValues.Right + Application.GetRealWidth(2), - // Gravity = Gravity.CenterVertical, - // Width = Application.GetMinRealAverage(16), - // Height = Application.GetMinRealAverage(16), - // UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png", - //}; - //environmentalView.AddChidren(btnPm25Icon); - - //var btnPm25Values = new Button() - //{ - // X = btnPm25Icon.Right + Application.GetRealWidth(4), - // Width = Application.GetRealWidth(30), - // Gravity = Gravity.CenterVertical, - // TextColor = CSS_Color.MainBackgroundColor, - // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - // Text = "--", - // TextAlignment = TextAlignment.CenterLeft, - // Tag = "Pm25Values" - //}; - //environmentalView.AddChidren(btnPm25Values); - //roomView.AddChidren(environmentalView); - #endregion - var btnAllClose = new Button() - { - X = Application.GetRealWidth(282), - Y = Application.GetRealWidth(126), - Width = Application.GetMinRealAverage(58), - Height = Application.GetMinRealAverage(58), - UnSelectedImagePath = "Classification/Room/AllCloseIcon.png", - Tag = "AllClose", - Visible = false - }; - roomView.AddChidren(btnAllClose); - LoadEvent_CloseAllFunction(btnAllClose, room); - - var btn = new Button() - { - Height = Application.GetRealWidth(20), - }; - roomListView.AddChidren(btn); - - roomViewbgColor.MouseUpEventHandler += (sender, e) => - { - Action ReloadRoomName = () => + if (childView.GetType() == typeof(FrameLayout)) { - btnFloorAndRoomName.Text = room.floorName + room.roomName; - }; + var roomView = childView as FrameLayout; - //鎴块棿鍒犻櫎浜嬩欢 - Action deleteAction = () => + //澶у浘鏄剧ず + if (OnAppConfig.Instance.IsShowBigPicture) + { + LoadBigPirtureRoomRow(roomView, roomsShowed[i/2]); + } + else//鏃犲浘鏄剧ず + { + LoadSmallPirtureRoomRow(roomView, roomsShowed[i/2]); + } + } + + + new System.Threading.Thread(() => { - roomView.RemoveFromParent(); - }; + //闇�瑕佺Щ鍔ㄧ殑楂樺害 + var runHeight = Application.GetRealWidth(i / 2 * 142); - //鎴块棿鑳屾櫙鍥句慨鏀逛簨浠跺洖璋� - Action modifyImageAction = () => + int runCount = 0; + //寰幆娆℃暟锛屽姩鐢绘晥鏋滈渶瑕佸湪1绉� 锛�10娆★級鍐呭畬鎴� + while (runCount == 9) + { + System.Threading.Thread.Sleep(100); + Application.RunOnMainThread(() => + { + if (childView.GetType() == typeof(FrameLayout)) + { + childView.Height += Application.GetRealWidth(14) * runDirection; + } + if (i > 0) + { + childView.Y += runDirection * Application.GetRealWidth(14 * i / 2); + } + }); + runCount++; + } + Application.RunOnMainThread(() => + { + childView.Y += runHeight * runDirection; + + if (childView.GetType() == typeof(FrameLayout)) + { + if (runDirection == 1) + { + childView.Height = Application.GetRealWidth(192); + } + else + { + childView.Height = Application.GetRealWidth(70); + } + } + }); + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.Highest }.Start(); + + //if (childView.GetType() == typeof(Button)) + //{ + // new System.Threading.Thread(() => { + // //寰幆娆℃暟锛屽姩鐢绘晥鏋滈渶瑕佸湪1绉� 锛�10娆★級鍐呭畬鎴� + // int runCount = 9; + // //闇�瑕佺Щ鍔ㄧ殑楂樺害 + // var runHeight = i / 2 * Application.GetRealWidth(142); + + // while (runCount == 0) + // { + // System.Threading.Thread.Sleep(100); + // Application.RunOnMainThread(() => + // { + // childView.Height += Application.GetRealWidth(14) * runDirection; + // }); + // } + // Application.RunOnMainThread(() => + // { + // if (runDirection == 1) + // { + // childView.Height = Application.GetRealWidth(192 + 20); + // } + // else + // { + // childView.Height = Application.GetRealWidth(70 + 20); + // } + // }); + // }) + // { IsBackground = true, Priority = System.Threading.ThreadPriority.Highest }.Start(); + //} + + } + } + else + { + roomListView.RemoveAll(); + foreach (var room in roomsShowed) + { + //澶у浘鏄剧ず + if (OnAppConfig.Instance.IsShowBigPicture) { - //roomViewbg.ImagePath = room.backgroundImage; - ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); - }; + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor; + var roomView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(192 + 20),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 + Radius = (uint)Application.GetRealWidth(12), + Tag = room.roomId, + }; + roomListView.AddChidren(roomView); - var view = new RoomPage(room, ReloadRoomName, deleteAction, modifyImageAction); - MainPage.BasePageView.AddChidren(view); - view.LoadPage(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + LoadBigPirtureRoomRow(roomView, room); + } + else//鏃犲浘鏄剧ず + { + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor; + var roomView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(70 + 20), + Radius = (uint)Application.GetRealWidth(12), + Tag = room.roomId, + BackgroundColor = CSS_Color.BackgroundColor, + }; + roomListView.AddChidren(roomView); + LoadSmallPirtureRoomRow(roomView, room); + } + } } } /// <summary> + /// 鍔犺浇澶у浘鎴块棿row + /// </summary> + /// <param name="roomView"></param> + /// <param name="room"></param> + void LoadBigPirtureRoomRow(FrameLayout roomView, Room room) + { + roomView.RemoveAll(); + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor; + + var roomViewbg = new ImageView() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9 + Radius = (uint)Application.GetRealWidth(12), + }; + roomView.AddChidren(roomViewbg); + + //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶 + ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); + + var btnFloorAndRoomName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(12 - 2), + Width = Application.GetRealWidth(266), + Height = Application.GetRealHeight(22 + 2 + 2), + Text = room.floorName + room.roomName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + roomView.AddChidren(btnFloorAndRoomName); + + #region 鐜鏁版嵁 + //var environmentalView = new FrameLayout() + //{ + // Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom, + // Height = Application.GetRealHeight(32), + // Tag = "EnvironmentalView", + //}; + //roomView.AddChidren(environmentalView); + + //Button btnTempIcon = new Button() + //{ + // X = Application.GetRealWidth(12), + // Gravity = Gravity.CenterVertical, + // Width = Application.GetMinRealAverage(16), + // Height = Application.GetMinRealAverage(16), + // UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png", + //}; + //environmentalView.AddChidren(btnTempIcon); + + //var btnTempValues = new Button() + //{ + // X = btnTempIcon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + // Text = "--掳", + // TextAlignment = TextAlignment.CenterLeft, + // Tag = "TempValues" + //}; + //environmentalView.AddChidren(btnTempValues); + + //Button btnHumidityIcon = new Button() + //{ + // X = btnTempValues.Right + Application.GetRealWidth(2), + // Gravity = Gravity.CenterVertical, + // Width = Application.GetMinRealAverage(16), + // Height = Application.GetMinRealAverage(16), + // UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png", + //}; + //environmentalView.AddChidren(btnHumidityIcon); + + //var btnHumidityValues = new Button() + //{ + // X = btnHumidityIcon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + // Text = "--%", + // TextAlignment = TextAlignment.CenterLeft, + // Tag = "HumidityValues" + //}; + //environmentalView.AddChidren(btnHumidityValues); + + //Button btnPm25Icon = new Button() + //{ + // X = btnHumidityValues.Right + Application.GetRealWidth(2), + // Gravity = Gravity.CenterVertical, + // Width = Application.GetMinRealAverage(16), + // Height = Application.GetMinRealAverage(16), + // UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png", + //}; + //environmentalView.AddChidren(btnPm25Icon); + + //var btnPm25Values = new Button() + //{ + // X = btnPm25Icon.Right + Application.GetRealWidth(4), + // Width = Application.GetRealWidth(30), + // Gravity = Gravity.CenterVertical, + // TextColor = CSS_Color.MainBackgroundColor, + // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + // Text = "--", + // TextAlignment = TextAlignment.CenterLeft, + // Tag = "Pm25Values" + //}; + //environmentalView.AddChidren(btnPm25Values); + //roomView.AddChidren(environmentalView); + #endregion + + var roomViewbgColor = new Button() + { + Radius = (uint)Application.GetRealWidth(12), + BackgroundColor = 0x19333333, + }; + roomView.AddChidren(roomViewbgColor); + + var btnAllClose = new Button() + { + X = Application.GetRealWidth(282), + Y = Application.GetRealWidth(126), + Width = Application.GetMinRealAverage(48), + Height = Application.GetMinRealAverage(48), + UnSelectedImagePath = "Classification/Room/AllCloseIcon.png", + Tag = "AllClose", + Visible = false + }; + roomView.AddChidren(btnAllClose); + LoadEvent_CloseAllFunction(btnAllClose, room); + + var btn = new Button() + { + Y = Application.GetRealWidth(192), + Height = Application.GetRealWidth(20), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + roomView.AddChidren(btn); + + roomViewbgColor.MouseUpEventHandler += (sender, e) => + { + Action ReloadRoomName = () => + { + btnFloorAndRoomName.Text = room.floorName + room.roomName; + }; + + //鎴块棿鍒犻櫎浜嬩欢 + Action deleteAction = () => + { + roomView.RemoveFromParent(); + }; + + //鎴块棿鑳屾櫙鍥句慨鏀逛簨浠跺洖璋� + Action modifyImageAction = () => + { + //roomViewbg.ImagePath = room.backgroundImage; + ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg); + }; + + var view = new RoomPage(room, ReloadRoomName, deleteAction, modifyImageAction); + MainPage.BasePageView.AddChidren(view); + view.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } + /// <summary> + /// 璁拌浇灏忓浘鎴块棿row + /// </summary> + void LoadSmallPirtureRoomRow(FrameLayout roomView, Room room) + { + roomView.RemoveAll(); + roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor; + + var btnRoomName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(12 - 2), + Width = Application.GetRealWidth(266), + Height = Application.GetRealHeight(52), + Text = room.roomName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + }; + roomView.AddChidren(btnRoomName); + + var btnFloorName = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(42), + Width = Application.GetRealWidth(266), + Height = Application.GetRealHeight(46), + Text = room.floorName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + }; + roomView.AddChidren(btnFloorName); + + var roomViewbg = new ImageView() + { + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(70), + Radius = (uint)Application.GetRealWidth(12), + }; + roomView.AddChidren(roomViewbg); + + var btnAllClose = new Button() + { + X = Application.GetRealWidth(288), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(58), + Height = Application.GetMinRealAverage(58), + UnSelectedImagePath = "Classification/Room/AllCloseIcon2.png", + Tag = "AllClose", + Visible = false + }; + roomView.AddChidren(btnAllClose); + LoadEvent_CloseAllFunction(btnAllClose, room); + + var btn = new Button() + { + Y = Application.GetRealWidth(70), + Height = Application.GetRealWidth(20), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + roomView.AddChidren(btn); + + roomViewbg.MouseUpEventHandler += (sender, e) => + { + Action ReloadRoomName = () => + { + btnFloorName.Text = room.floorName; + btnRoomName.Text = room.roomName; + }; + + //鎴块棿鍒犻櫎浜嬩欢 + Action deleteAction = () => + { + roomView.RemoveFromParent(); + }; + Action action = () => + { + }; + + var view = new RoomPage(room, ReloadRoomName, deleteAction, action); + MainPage.BasePageView.AddChidren(view); + view.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + } + + + /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃鐣岄潰 /// </summary> void LoadFunctionPageView() -- Gitblit v1.8.0