xm
2020-05-07 c1de48884fa145a16a0f8bcee93274dcfaa0ff82
ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs
New file
@@ -0,0 +1,320 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Guide
{
    /// <summary>
    /// 引导界面的共通界面
    /// </summary>
    public class GuideCommonForm : FrameLayoutBase
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 场景和功能的控件
        /// </summary>
        public FrameLayout contrSwitch = null;
        /// <summary>
        /// 场景控件
        /// </summary>
        public NormalViewControl btnScene = null;
        /// <summary>
        /// 功能
        /// </summary>
        public NormalViewControl btnFunction = null;
        /// <summary>
        /// 住宅名称
        /// </summary>
        public NormalViewControl btnHouse = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 显示界面
        /// </summary>
        public virtual void ShowFrom()
        {
            Phone.MainPage.ListRoomViewFrom.Instance.CanClick = false;
            UserView.UserPage.Instance.AddChidren(this);
            this.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
            //住宅列表图标
            var btnHouseIcon = new IconViewControl(69);
            btnHouseIcon.UnSelectedImagePath = "Item/Floor.png";
            btnHouseIcon.Y = Application.GetRealHeight(86);
            btnHouseIcon.X = ControlCommonResourse.XXLeft;
            this.AddChidren(btnHouseIcon);
            //消息图标
            var btnMsg = new IconViewControl(69);
            btnMsg.Y = Application.GetRealHeight(86);
            btnMsg.X = Application.GetRealWidth(953);
            btnMsg.UnSelectedImagePath = "Item/Message.png";
            this.AddChidren(btnMsg);
            //住宅名字
            this.btnHouse = new NormalViewControl(300, 95, true);
            btnHouse.TextSize = 24;
            btnHouse.X = ControlCommonResourse.XXLeft;
            btnHouse.Y = Application.GetRealHeight(161);
            btnHouse.TextID = R.MyInternationalizationString.uMyResidence;
            this.AddChidren(btnHouse);
            //左右滑动控件的背景容器
            var frameBack = new FrameLayout();
            frameBack.Y = Application.GetRealHeight(302);
            frameBack.Width = this.Width; ;
            frameBack.Height = Application.GetRealHeight(478);
            this.AddChidren(frameBack);
            //房间滑动控件左边的虚拟图片
            var mLeftImageView = new ImageView();
            mLeftImageView.ImagePath = "RoomIcon/1.jpg";
            mLeftImageView.Radius = (uint)Application.GetRealHeight(17);
            mLeftImageView.Width = Application.GetRealWidth(717);
            mLeftImageView.Height = Application.GetRealHeight(478);
            //房间滑动控件右边的虚拟图片
            var mRightImageView = new ImageView();
            mRightImageView.ImagePath = "RoomIcon/2.jpg";
            mRightImageView.Radius = (uint)Application.GetRealHeight(17);
            mRightImageView.Width = mLeftImageView.Width;
            mRightImageView.Height = mLeftImageView.Height;
            //左右滑动的房间
            var roomPageView = new HorizontalPages();
            roomPageView.Width = frameBack.Width;
            roomPageView.Height = frameBack.Height;
            frameBack.AddChidren(roomPageView);
            //突出边距
            roomPageView.TCBJ = Application.GetRealWidth(124);
            //两个page之间的间距
            roomPageView.JMBJ = Application.GetRealWidth(58);
            //在这个控件的下面添加阴影效果
            var btnRoomBottomShadow = new NormalViewControl(717, 81, true);
            btnRoomBottomShadow.Y = frameBack.Bottom;
            btnRoomBottomShadow.Gravity = Gravity.CenterHorizontal;
            btnRoomBottomShadow.UnSelectedImagePath = "Room/RoomCardShadow.png";
            this.AddChidren(btnRoomBottomShadow);
            //设置控制最左和最右2边填充的假背景View,不设置不显示,需要在AddChidren 前调用该方法
            roomPageView.SetLeftAndRightImageView(mLeftImageView, mRightImageView);
            //客厅
            var room1 = new Common.Room();
            room1.BackgroundImage = "RoomIcon/0.jpg";
            room1.Name = Language.StringByID(R.MyInternationalizationString.uLivingRoom);
            var roomView1 = new Phone.Device.CommonForm.RoomView(0, 0);
            roomPageView.AddChidren(roomView1);
            roomView1.Init(room1);
            roomView1.HideName(false);
            //阳台
            var room2 = new Common.Room();
            room2.BackgroundImage = "RoomIcon/1.jpg";
            room2.Name = Language.StringByID(R.MyInternationalizationString.uBalcony);
            var roomView2 = new Phone.Device.CommonForm.RoomView(0, 0);
            roomPageView.AddChidren(roomView2);
            roomView2.Init(room2);
            roomView2.HideName(true);
            //卧室
            var room3 = new Common.Room();
            room3.BackgroundImage = "RoomIcon/2.jpg";
            room3.Name = Language.StringByID(R.MyInternationalizationString.uBedroom);
            var roomView3 = new Phone.Device.CommonForm.RoomView(0, 0);
            roomPageView.AddChidren(roomView3);
            roomView3.Init(room3);
            roomView3.HideName(true);
            //在房间卡片左边添加遮罩
            var btnRoomLeftShadow = new FrameLayout();
            btnRoomLeftShadow.Width = Application.GetRealWidth(124);
            btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
            btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
            btnRoomLeftShadow.BackgroundColor = 0x1c000000;
            btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
            frameBack.AddChidren(btnRoomLeftShadow);
            //在房间卡片右边添加遮罩
            var btnRoomRightShadow = new FrameLayout();
            btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
            btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
            btnRoomRightShadow.X = Application.GetRealWidth(956);
            btnRoomRightShadow.Gravity = Gravity.CenterVertical;
            btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
            btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
            frameBack.AddChidren(btnRoomRightShadow);
            //控件开始滑动的事件
            roomPageView.StartScrollAction += () =>
            {
                //开始滑动时,隐藏当前的数据显示
                (roomPageView.GetChildren(roomPageView.PageIndex) as Phone.Device.CommonForm.RoomView).HideName(true);
                btnRoomLeftShadow.Visible = false;
                btnRoomRightShadow.Visible = false;
                btnRoomBottomShadow.Visible = false;
            };
            roomPageView.EndScrollAction += () =>
            {
                int curIndex = roomPageView.PageIndex;
                //前一张卡片
                if (roomPageView.GetChildren(curIndex - 1) != null)
                {
                    (roomPageView.GetChildren(curIndex - 1) as Phone.Device.CommonForm.RoomView).HideName(true);
                }
                //当前卡片
                if (roomPageView.GetChildren(curIndex) != null)
                {
                    (roomPageView.GetChildren(curIndex) as Phone.Device.CommonForm.RoomView).HideName(false);
                }
                //下一张卡片
                if (roomPageView.GetChildren(curIndex + 1) != null)
                {
                    (roomPageView.GetChildren(curIndex + 1) as Phone.Device.CommonForm.RoomView).HideName(true);
                }
                btnRoomLeftShadow.Visible = true;
                btnRoomRightShadow.Visible = true;
                btnRoomBottomShadow.Visible = true;
            };
            roomPageView.PageIndex = 0;
            //场景和功能的控件
            this.contrSwitch = new FrameLayout();
            contrSwitch.Y = frameBack.Bottom + Application.GetRealHeight(52);
            contrSwitch.Gravity = Gravity.CenterHorizontal;
            contrSwitch.Width = Application.GetRealWidth(804);
            contrSwitch.Height = Application.GetRealHeight(124);
            contrSwitch.Radius = (uint)Application.GetRealHeight(124) / 2;
            contrSwitch.BackgroundColor = 0xff232323;
            this.AddChidren(contrSwitch);
            //场景
            this.btnScene = new NormalViewControl(contrSwitch.Width / 2 - Application.GetRealHeight(124) / 2, contrSwitch.Height, false);
            btnScene.X = Application.GetRealHeight(124) / 2;
            btnScene.IsBold = true;
            btnScene.TextAlignment = TextAlignment.Center;
            btnScene.TextColor = 0xffffffff;
            btnScene.TextSize = 16;
            btnScene.TextID = R.MyInternationalizationString.uScence;
            contrSwitch.AddChidren(btnScene);
            //功能
            this.btnFunction = new NormalViewControl(btnScene.Width, contrSwitch.Height, false);
            btnFunction.X = btnScene.Right;
            btnFunction.TextAlignment = TextAlignment.Center;
            btnFunction.TextColor = 0xFFCBCACA;
            btnFunction.TextSize = 15;
            btnFunction.TextID = R.MyInternationalizationString.uFunction;
            contrSwitch.AddChidren(btnFunction);
            //自定义场景1
            var sceneView1 = new MainPage.Controls.SceneCardControl();
            sceneView1.X = Application.GetRealWidth(46);
            sceneView1.Y = frameBack.Bottom + Application.GetRealHeight(233);
            this.AddChidren(sceneView1);
            sceneView1.InitControl(new Common.SceneUI() { Name = "Getup", IconPath = "SceneIcon/0.png" });
            //自定义场景2
            var sceneView2 = new MainPage.Controls.SceneCardControl();
            sceneView2.X = Application.GetRealWidth(553);
            sceneView2.Y = sceneView1.Y;
            this.AddChidren(sceneView2);
            sceneView2.InitControl(new Common.SceneUI() { Name = "Relax", IconPath = "SceneIcon/1.png" });
            //自定义场景3
            var sceneView3 = new MainPage.Controls.SceneCardControl();
            sceneView3.X = sceneView1.X;
            sceneView3.Y = sceneView1.Bottom + Application.GetRealHeight(14);
            this.AddChidren(sceneView3);
            sceneView3.InitControl(new Common.SceneUI() { Name = "Dinner", IconPath = "SceneIcon/2.png" });
            //自定义场景4
            var sceneView4 = new MainPage.Controls.SceneCardControl();
            sceneView4.X = sceneView2.X;
            sceneView4.Y = sceneView3.Y;
            this.AddChidren(sceneView4);
            sceneView4.InitControl(new Common.SceneUI() { Name = "Goodnight", IconPath = "SceneIcon/3.png" });
            //底部菜单
            var frameMenu = new FrameLayout();
            frameMenu.Height = ControlCommonResourse.BottomFrameHeight;
            frameMenu.Gravity = Gravity.BottomCenter;
            this.AddChidren(frameMenu);
            //线
            var btnLine = new NormalViewControl(frameMenu.Width, 1, false);
            btnLine.BackgroundColor = Common.ZigbeeColor.Current.GXCBottomLineColor;
            frameMenu.AddChidren(btnLine);
            //主页
            var btnMenuHome = new IconViewControl(10, false);
            btnMenuHome.X = Application.GetRealWidth(109);
            btnMenuHome.Width = this.GetPictrueRealSize(138);
            btnMenuHome.Height = this.GetPictrueRealSize(98);
            btnMenuHome.UnSelectedImagePath = "Navigation/HomeSelected.png";
            frameMenu.AddChidren(btnMenuHome);
            var btnMenuHomeName = new NormalViewControl(btnMenuHome.Width, Application.GetRealHeight(40), false);
            btnMenuHomeName.X = btnMenuHome.X;
            btnMenuHomeName.Y = btnMenuHome.Bottom;
            btnMenuHomeName.TextAlignment = TextAlignment.Center;
            btnMenuHomeName.TextColor = 0xFF232323;
            btnMenuHomeName.TextSize = 10;
            btnMenuHomeName.TextID = R.MyInternationalizationString.HomePage;
            frameMenu.AddChidren(btnMenuHomeName);
            //分类
            var btnFenlei = new IconViewControl(10, false);
            btnFenlei.X = Application.GetRealWidth(469);
            btnFenlei.Width = this.GetPictrueRealSize(138);
            btnFenlei.Height = this.GetPictrueRealSize(98);
            btnFenlei.UnSelectedImagePath = "Navigation/Category.png";
            frameMenu.AddChidren(btnFenlei);
            var btnFenleiName = new NormalViewControl(btnFenlei.Width, Application.GetRealHeight(40), false);
            btnFenleiName.X = btnFenlei.X;
            btnFenleiName.Y = btnFenlei.Bottom;
            btnFenleiName.TextAlignment = TextAlignment.Center;
            btnFenleiName.TextColor = 0xFF232323;
            btnFenleiName.TextSize = 10;
            btnFenleiName.TextID = R.MyInternationalizationString.Category;
            frameMenu.AddChidren(btnFenleiName);
            //我的
            var btnMy = new IconViewControl(10, false);
            btnMy.X = Application.GetRealWidth(832);
            btnMy.Width = this.GetPictrueRealSize(138);
            btnMy.Height = this.GetPictrueRealSize(98);
            btnMy.UnSelectedImagePath = "Navigation/Setting.png";
            frameMenu.AddChidren(btnMy);
            var btnMyName = new NormalViewControl(btnMy.Width, Application.GetRealHeight(40), false);
            btnMyName.X = btnMy.X;
            btnMyName.Y = btnMy.Bottom;
            btnMyName.TextAlignment = TextAlignment.Center;
            btnMyName.TextColor = 0xFF232323;
            btnMyName.TextSize = 10;
            btnMyName.TextID = R.MyInternationalizationString.Me;
            frameMenu.AddChidren(btnMyName);
        }
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 添加【我知道了】的按钮
        /// </summary>
        /// <returns></returns>
        public NormalViewControl AddIKnwonButton()
        {
            var btnContr = new NormalViewControl(397, 86, true);
            btnContr.BorderWidth = 1;
            btnContr.BorderColor = UserCenterColor.Current.White;
            btnContr.Radius = (uint)Application.GetRealHeight(86) / 2;
            btnContr.BackgroundColor = 0x26FFFFFF;
            btnContr.Gravity = Gravity.CenterHorizontal;
            btnContr.Y = Application.GetRealHeight(1650);
            btnContr.TextAlignment = TextAlignment.Center;
            btnContr.TextColor = UserCenterColor.Current.White;
            btnContr.TextSize = 16;
            btnContr.TextID = R.MyInternationalizationString.uIKnwon;
            this.AddChidren(btnContr);
            return btnContr;
        }
        #endregion
    }
}