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;
|
/// <summary>
|
///中部布局
|
/// </summary>
|
VerticalScrolViewLayout vv;
|
/// <summary>
|
/// 当前设备名称
|
/// </summary>
|
private Button btnOpenCurrDeviceName;
|
/// <summary>
|
/// 区域
|
/// </summary>
|
private Button btnOpenCurrDeviceRoom;
|
/// <summary>
|
///收藏图标
|
/// </summary>
|
private Button btnOpenCollectIcon;
|
CustomFrameLayout shouyeFL;
|
CustomFrameLayout kaijiFL;
|
CustomFrameLayout guanFL;
|
Button btn_jia;
|
Button btn_jian;
|
CustomButton caidanBtn;
|
CustomButton bofangBtn;
|
CustomButton zantingBtn;
|
CustomButton kuaijinBtn;
|
CustomButton kauituiBtn;
|
CustomButton jingyinBtn;
|
CustomButton shezhiBtn;
|
CustomButton jiechujingyinBtn;
|
CustomButton fanhuiBtn;
|
MenuFramLayout muenFrameLayout;
|
SourceFrameLayout sourceFrameLayout;
|
|
/// <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.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.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();
|
this.btnCollectionIcon.IsSelected = btnOpenCollectIcon.IsSelected;
|
};
|
|
//首页
|
shouyeFL.SetClickListener((fl, btnImage, btnText) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.home_page, "");
|
});
|
//开机
|
kaijiFL.SetClickListener((fl, btnImage, btnText) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.wol, "on");
|
|
});
|
//关机
|
guanFL.SetClickListener((fl, btnImage, btnText) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off");
|
|
});
|
//音量+
|
btn_jia.MouseUpEventHandler += (sender, e) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.volume_add, "");
|
this.SetButtonIsSelected(btn_jia);
|
|
};
|
//音量-
|
btn_jian.MouseUpEventHandler += (sender, e) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.volume_subtract, "");
|
this.SetButtonIsSelected(btn_jian);
|
};
|
//菜单
|
caidanBtn.SetClickListener((btn) =>
|
{
|
ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11");
|
|
});
|
//播放
|
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 += (key) =>
|
{
|
var p = new UI2.Intelligence.Automation.PublicInterface();
|
var dic = p.GetHisenseSignalSourceDic();
|
string value = p.GetValue(dic, key);
|
ControlCommand(HisenseTVFunctionalAttributeConstant.signal, value);
|
};
|
|
}
|
/// <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
|
{
|
if (this.device == null)
|
{
|
//设备不在线控制失败
|
Application.RunOnMainThread(() =>
|
{
|
CommonMethod.Current.ShowTip(Language.StringByID(StringId.shebeibuzaixian), 3);
|
});
|
return;
|
}
|
|
if (!this.device.online && key != HisenseTVFunctionalAttributeConstant.wol)
|
{
|
//设备不在线控制失败
|
Application.RunOnMainThread(() =>
|
{
|
CommonMethod.Current.ShowTip(Language.StringByID(StringId.shebeibuzaixian), 3);
|
});
|
return;
|
}
|
|
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()
|
{
|
if (this.device == null)
|
{
|
return;
|
}
|
CommonMethod.Current.Loading.Start();
|
CommonMethod.Current.SunThread(() =>
|
{
|
try
|
{
|
|
var isRefreshDeviceStatus = Send.Current.RefreshDeviceStatus(new List<string> { this.device.deviceId });
|
if (isRefreshDeviceStatus)
|
{
|
var fun = Send.Current.GetDeviceInfo(this.device.deviceId);
|
if (fun != null)
|
{
|
//更新真实在线状态
|
this.device.online = fun.online;
|
}
|
|
}
|
}
|
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-60),
|
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.GetImageButton().SelectedImagePath = "HisenseTv/shouyeSelected.png";
|
shouyeFL.GetTextButton().TextID = StringId.shouye;
|
|
|
kaijiFL = new CustomFrameLayout();
|
backgroundOpenFl.AddChidren(kaijiFL);
|
kaijiFL.X = shouyeFL.Right + Application.GetRealWidth(37);
|
kaijiFL.Y = yHeight;
|
kaijiFL.AddImageView();
|
kaijiFL.AddTextButtonView();
|
kaijiFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kai.png";
|
kaijiFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
|
kaijiFL.GetTextButton().TextID = StringId.kaiji;
|
|
guanFL = new CustomFrameLayout();
|
backgroundOpenFl.AddChidren(guanFL);
|
guanFL.X = kaijiFL.Right + Application.GetRealWidth(37);
|
guanFL.Y = yHeight;
|
guanFL.AddImageView();
|
guanFL.AddTextButtonView();
|
guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/guan.png";
|
guanFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
|
//guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
|
guanFL.GetTextButton().TextID = StringId.guanji;
|
|
var yinliangFL = new FrameLayout();
|
backgroundOpenFl.AddChidren(yinliangFL);
|
yinliangFL.Height = Application.GetRealHeight(146-16);
|
yinliangFL.Width = Application.GetRealWidth(68);
|
yinliangFL.Y = Application.GetRealHeight(260-8-20);
|
yinliangFL.X = shouyeFL.X;
|
yinliangFL.BackgroundColor = 0xFFF2F3F7;
|
yinliangFL.Radius = (uint)Application.GetRealWidth(34);
|
|
btn_jia = new Button
|
{
|
Width = Application.GetRealWidth(32),
|
Height = Application.GetRealWidth(32),
|
UnSelectedImagePath = "HisenseTv/yingliangjia.png",
|
SelectedImagePath = "HisenseTv/yingliangjiaSelected.png",
|
Y = Application.GetRealHeight(16),
|
Gravity = Gravity.CenterHorizontal,
|
|
};
|
yinliangFL.AddChidren(btn_jia);
|
Button btnText = new Button
|
{
|
Y = Application.GetRealHeight(63-8),
|
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(98-8),
|
Width = Application.GetRealWidth(32),
|
Height = Application.GetRealWidth(32),
|
UnSelectedImagePath = "HisenseTv/yingliangjian.png",
|
SelectedImagePath = "HisenseTv/yingliangjianSelected.png",
|
Gravity = Gravity.CenterHorizontal,
|
|
};
|
yinliangFL.AddChidren(btn_jian);
|
|
int bottomValue= 4;
|
caidanBtn = new CustomButton();
|
caidanBtn.TextID = StringId.caidan;
|
caidanBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
|
caidanBtn.X = shouyeFL.X;
|
backgroundOpenFl.AddChidren(caidanBtn);
|
|
bofangBtn = new CustomButton();
|
bofangBtn.TextID = StringId.bofang;
|
bofangBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
|
bofangBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(bofangBtn);
|
|
|
zantingBtn = new CustomButton();
|
zantingBtn.TextID = StringId.zanting;
|
zantingBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
|
zantingBtn.X = bofangBtn.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(zantingBtn);
|
|
int bottomValue1 = 8;
|
kuaijinBtn = new CustomButton();
|
kuaijinBtn.TextID = StringId.kuaijin;
|
kuaijinBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
kuaijinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(kuaijinBtn);
|
|
|
kauituiBtn = new CustomButton();
|
kauituiBtn.TextID = StringId.kuaitui;
|
kauituiBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
kauituiBtn.X = kuaijinBtn.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(kauituiBtn);
|
|
|
|
|
jingyinBtn = new CustomButton();
|
jingyinBtn.TextID = StringId.jingyin;
|
jingyinBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
jingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(jingyinBtn);
|
|
|
shezhiBtn = new CustomButton();
|
shezhiBtn.TextID = StringId.shezhi;
|
shezhiBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
shezhiBtn.X = jingyinBtn.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(shezhiBtn);
|
|
|
|
jiechujingyinBtn = new CustomButton();
|
jiechujingyinBtn.TextID = StringId.jiechujingyin;
|
jiechujingyinBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
jiechujingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(jiechujingyinBtn);
|
|
|
fanhuiBtn = new CustomButton();
|
fanhuiBtn.TextID = StringId.fanhui;
|
fanhuiBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(bottomValue1);
|
fanhuiBtn.X = jiechujingyinBtn.Right + Application.GetRealWidth(37);
|
backgroundOpenFl.AddChidren(fanhuiBtn);
|
|
|
TypeFrameLayout typeFrameLayout = new TypeFrameLayout();
|
typeFrameLayout.middLayout.Y = yinliangFL.Bottom + Application.GetRealHeight(16);
|
typeFrameLayout.AddView(backgroundOpenFl);
|
|
muenFrameLayout = new MenuFramLayout();
|
muenFrameLayout.Y = Application.GetRealHeight(482-60);
|
muenFrameLayout.AddView(backgroundOpenFl);
|
|
sourceFrameLayout = new SourceFrameLayout();
|
sourceFrameLayout.Y = Application.GetRealHeight(482-60);
|
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 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>
|
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.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20);
|
}
|
|
#endregion
|
|
}
|
#region -------自定义当前界面的容器---------
|
/// <summary>
|
/// 自定义(首页,关机,菜单)容器
|
/// </summary>
|
class CustomFrameLayout : BaseFramLayout
|
{
|
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,
|
SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
|
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> UpClick = (sender, e) =>
|
{
|
action?.Invoke(this, btnImage, btnText);
|
SetButtonIsSelected(btnImage);
|
};
|
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.SelectedTextColor = MusicColor.MusicTxet14SelectedColor;
|
this.TextAlignment = TextAlignment.Center;
|
this.IsMoreLines = true;
|
this.BackgroundColor = 0xFFF2F3F7;
|
this.SelectedBackgroundColor = 0xffECEDEE;
|
this.Radius = (uint)Application.GetRealHeight(19);
|
this.Padding = new Padding(0, 0, 0, 0);
|
}
|
|
|
/// <summary>
|
/// 事件监听方法
|
/// </summary>
|
/// <param name="action">回调(第一个是父类对象</param>
|
public void SetClickListener(Action<Button> action)
|
{
|
EventHandler<MouseEventArgs> UpClick = (sender, e) =>
|
{
|
|
action?.Invoke(this);
|
new BaseFramLayout().SetButtonIsSelected(this);
|
|
};
|
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,
|
Padding = new Padding(0, 0, 0, 0),
|
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,
|
TextID = StringId.xinhaoyuan,
|
Padding = new Padding(0, 0, 0, 0),
|
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(0);
|
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(0);
|
|
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
|
|
}
|