From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs | 276 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 276 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs new file mode 100755 index 0000000..54474b0 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs @@ -0,0 +1,276 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.DevicePanel +{ + /// <summary> + /// 鎸夐敭闈㈡澘鐨勯鑹查�夋嫨鐣岄潰 + /// </summary> + public class PanelColorSelectForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 棰滆壊閫夋嫨缁撴潫鐨勪簨浠�(R,G,B) + /// </summary> + public Action<int, int, int> FinishSelectColorEvent; + /// <summary> + /// 閫夋嫨鐨凴GB + /// </summary> + private List<int> listRGB = null; + /// <summary> + /// 褰撳墠閫夋嫨鐨勬帶浠�(澶栨) + /// </summary> + private FrameLayoutControl nowSelectIcon1 = null; + /// <summary> + /// 鍦嗙洏閫夋嫨鐨勯鑹叉樉绀烘帶浠�(澶栨) + /// </summary> + private FrameLayoutControl wheelSelectIcon1 = null; + /// <summary> + /// 鍦嗙洏閫夋嫨鐨勯鑹叉樉绀烘帶浠�(鍐呮) + /// </summary> + private IconViewControl wheelSelectIcon2 = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="i_R">R</param> + /// <param name="i_G">G</param> + /// <param name="i_B">B</param> + public void ShowForm(int i_R,int i_G,int i_B) + { + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSelectColor)); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(i_R, i_G, i_B); + + //纭畾 + var btnfinish = new BottomClickButton(); + btnfinish.TextID = R.MyInternationalizationString.Confrim; + bodyFrameLayout.AddChidren(btnfinish); + btnfinish.MouseUpEventHandler += (sender, e) => + { + if (listRGB == null || FinishSelectColorEvent == null) + { + this.CloseForm(); + return; + } + //鍥炶皟鍑芥暟 + this.FinishSelectColorEvent(listRGB[0], listRGB[1], listRGB[2]); + this.CloseForm(); + }; + + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + /// <param name="i_R">R</param> + /// <param name="i_G">G</param> + /// <param name="i_B">B</param> + private void InitMiddleFrame(int i_R, int i_G, int i_B) + { + bodyFrameLayout.BackgroundColor = UserCenterColor.Current.White; + //娓呯┖bodyFrame + this.ClearBodyFrame(); + //鍒濆鍖栭鑹插渾鐩樻帶浠� + this.InitColorPictrueControl(); + //鍒濆鍖栧鐢ㄩ鑹茬殑鎺т欢 + this.InitSpareColorControl(i_R, i_G, i_B); + } + + #endregion + + #region 鈻� 鍒濆鍖栭鑹插渾鐩榑____________________ + + /// <summary> + /// 鍒濆鍖栭鑹插渾鐩樻帶浠� + /// </summary> + private void InitColorPictrueControl() + { + //鍦嗙洏鎺т欢鐨凢rameLayout + var frameBack = new FrameLayout(); + frameBack.Y = Application.GetRealHeight(66); + frameBack.Height = Application.GetRealHeight(1204); + bodyFrameLayout.AddChidren(frameBack); + + var framePic = new FrameLayout(); + framePic.Width = Application.GetMinRealAverage(588); + framePic.Height = Application.GetMinRealAverage(588); + framePic.Gravity = Gravity.Center; + frameBack.AddChidren(framePic); + + //鍦嗙洏鎺т欢 + var colorPic = new ColorPicker(); + colorPic.ColorImagePath = "Item/PickerColorWheel.png"; + framePic.AddChidren(colorPic); + + //鐧界偣鎺т欢 + var btnWhiteView = new IconViewControl(30); + btnWhiteView.Visible = false; + btnWhiteView.BackgroundColor = UserCenterColor.Current.White; + btnWhiteView.Radius = (uint)Application.GetMinRealAverage(30) / 2; + framePic.AddChidren(btnWhiteView); + + colorPic.ColorChaged += (sender, eColor) => + { + listRGB = new List<int>(); + listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[0]))); + listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[1]))); + listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[2]))); + + //鏄剧ず閫夋嫨棰滆壊鐨勬帶浠� + if (nowSelectIcon1 != null) + { + nowSelectIcon1.BorderColor = UserCenterColor.Current.White; + } + wheelSelectIcon2.BackgroundColor = this.GetColorByRGB(eColor[0], eColor[1], eColor[2]); + wheelSelectIcon1.BorderColor = 0xffcccccc; + wheelSelectIcon1.Name = listRGB[0] + "-" + listRGB[1] + "-" + listRGB[2]; + nowSelectIcon1 = wheelSelectIcon1; + }; + colorPic.MouseDownEventHandler += (sender, e) => + { + //鏄剧ず鐧界偣 + btnWhiteView.X = (int)e.X; + btnWhiteView.Y = (int)e.Y; + if (btnWhiteView.Visible == false) + { + btnWhiteView.Visible = true; + } + }; + } + + #endregion + + #region 鈻� 鍒濆鍖栭閫夐鑹瞋____________________ + + /// <summary> + /// 鍒濆鍖栧鐢ㄩ鑹茬殑鎺т欢 + /// </summary> + /// <param name="i_R">R</param> + /// <param name="i_G">G</param> + /// <param name="i_B">B</param> + private void InitSpareColorControl(int i_R, int i_G, int i_B) + { + //鎺т欢鏁� + var listColor = this.InitSpareDefultColor(); + //X杞村垵濮嬪潗鏍� + int Xdefult = (bodyFrameLayout.Width - Application.GetMinRealAverage(80 + 24) * (listColor.Count - 1) - Application.GetMinRealAverage(80)) / 2; + for (int i = 0; i < listColor.Count; i++) + { + var dataColor = listColor[i]; + + var btnFrame = new FrameLayoutControl(); + btnFrame.Height = Application.GetMinRealAverage(80); + btnFrame.Width = Application.GetMinRealAverage(80); + btnFrame.Radius = (uint)Application.GetMinRealAverage(80) / 2; + btnFrame.X = Xdefult + i * Application.GetMinRealAverage(80 + 24); + btnFrame.Y = Application.GetRealHeight(1054); + btnFrame.BackgroundColor = UserCenterColor.Current.White; + btnFrame.BorderWidth = 1; + btnFrame.BorderColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(btnFrame); + + //鍒嗕袱姝ヨ绠楋紝涓嶇劧鏈夊彲鑳藉畠寰楀嚭鐨勭粨鏋滄湁璇樊瀵艰嚧涓嶅眳涓� + int iconWidth = btnFrame.Height - Application.GetMinRealAverage(10) - Application.GetMinRealAverage(10); + var btnIcon = new IconViewControl(iconWidth, false); + btnIcon.Gravity = Gravity.Center; + btnIcon.Radius = (uint)btnIcon.IconSize / 2; + btnFrame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly); + + if (dataColor != null) + { + //棰勮缃殑棰滆壊 + btnFrame.Name = dataColor[0] + "-" + dataColor[1] + "-" + dataColor[2]; + btnIcon.BackgroundColor = this.GetColorByRGB((byte)dataColor[0], (byte)dataColor[1], (byte)dataColor[2]); + } + else + { + //鍘熸潵鐨勯鑹� + btnFrame.BorderColor = 0xffcccccc; + btnIcon.BackgroundColor = this.GetColorByRGB((byte)i_R, (byte)i_G, (byte)i_B); + wheelSelectIcon1 = btnFrame; + wheelSelectIcon2 = btnIcon; + nowSelectIcon1 = btnFrame; + } + + btnFrame.ButtonClickEvent += (sender, e) => + { + //鏄剧ず閫夋嫨棰滆壊鐨勬帶浠� + if (nowSelectIcon1 != null) + { + nowSelectIcon1.BorderColor = UserCenterColor.Current.White; + } + btnFrame.BorderColor = 0xffcccccc; + nowSelectIcon1 = btnFrame; + + if (btnFrame.Name != null) + { + listRGB = new List<int>(); + string[] Arry = btnFrame.Name.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); + listRGB.Add(Convert.ToInt32(Convert.ToString(Arry[0]))); + listRGB.Add(Convert.ToInt32(Convert.ToString(Arry[1]))); + listRGB.Add(Convert.ToInt32(Convert.ToString(Arry[2]))); + } + }; + } + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鍒濆鍖栧鐢ㄩ鑹茬殑榛樿鍊� + /// </summary> + /// <returns></returns> + private List<List<int>> InitSpareDefultColor() + { + var list = new List<List<int>>(); + + list.Add(new List<int>() { 253, 226, 39 }); + list.Add(new List<int>() { 121, 255, 197 }); + list.Add(null); + list.Add(new List<int>() { 198, 85, 250 }); + list.Add(new List<int>() { 255, 117, 67 }); + + return list; + } + + /// <summary> + /// 灏哛GB杞崲涓洪鑹� + /// </summary> + /// <param name="R"></param> + /// <param name="G"></param> + /// <param name="B"></param> + /// <returns></returns> + private uint GetColorByRGB(byte R, byte G, byte B) + { + return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B); + } + + #endregion + + #region 鈻� 鐣岄潰鍏抽棴___________________________ + + /// <summary> + /// 鐣岄潰鍏抽棴 + /// </summary> + public override void CloseFormBefore() + { + this.FinishSelectColorEvent = null; + + base.CloseFormBefore(); + } + + #endregion + } +} -- Gitblit v1.8.0