using System;
|
using System.Collections.Generic;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
|
using Shared;
|
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View
|
{
|
public class Buttons
|
{
|
/// <summary>
|
/// 动态加载按钮列表
|
/// </summary>
|
/// <param name="buttonFLayout">父控件</param>
|
/// <param name="buttonList">数据列表</param>
|
/// <param name="action">回调</param>
|
/// <param name="line">表示多少行</param>
|
/// <param name="sum">表示一行加载多少个按钮</param>
|
public void AddButton(FrameLayout buttonFLayout, List<string> buttonList, Action<string> action, int line = 7, int sum = 3)
|
{
|
VerticalScrolViewLayout vv = new VerticalScrolViewLayout();
|
buttonFLayout.AddChidren(vv);
|
for (int i = 0; i < line; i++)
|
{
|
var currFLayout = new FrameLayout { Height = Application.GetRealHeight(16 + 44) };
|
vv.AddChidren(currFLayout);
|
for (int a = i * sum + 1, b = 0; a <= buttonList.Count; a++, b++)
|
{
|
var name = buttonList[a - 1];
|
var nameBtn = new Button
|
{
|
Y = Application.GetRealHeight(16),
|
X = Application.GetRealWidth(24 + (98 + 16) * b),
|
// Gravity=Gravity.CenterVertical,
|
Width = Application.GetRealWidth(98),
|
Height = Application.GetRealHeight(44),
|
Text = name,
|
TextSize = TextSize.text16,
|
TextColor = CSS.CSS_Color.textColor,
|
TextAlignment = TextAlignment.Center,
|
Radius = (uint)Application.GetRealHeight(8),
|
BorderWidth = 1,
|
BorderColor = CSS.CSS_Color.textCancelColor,
|
};
|
currFLayout.AddChidren(nameBtn);
|
nameBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
action(nameBtn.Text);
|
};
|
if (a % sum == 0)
|
{
|
break;
|
}
|
}
|
if (i == line - 1)
|
{
|
//最后一个元素后面加一个20高度间隔
|
vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) });
|
}
|
}
|
|
}
|
/// <summary>
|
/// 动态加载按钮列表
|
/// </summary>
|
/// <param name="vv">父控件</param>
|
/// <param name="list">数据列表</param>
|
/// <param name="action">回调</param>
|
/// <param name="if_bool">表示是否显示删除图标</param>
|
public void AddButton2(VerticalScrolViewLayout vv, List<Entity.AttributesStatus> list, Action<Entity.AttributesStatus> action, bool if_bool)
|
{
|
//定义一个变量记录行数
|
int sum = 0;
|
if (list.Count % 3 == 0)
|
{
|
sum = list.Count / 3;
|
}
|
else
|
{
|
sum = list.Count / 3 + 1;
|
}
|
//计算加载出来的数据需要的高度
|
int h = 16 + sum * (16 + 44) + 104 + 76;
|
int line = 0;
|
//按钮的父控件
|
var FLayout = new FrameLayout
|
{
|
Height = Application.GetRealWidth(h),
|
};
|
vv.AddChidren(FLayout);
|
for (int i = 1, j = 0; i <= list.Count; i++, j++)
|
{
|
var nameObj = list[i - 1];
|
//按钮
|
var buttonNameBtn = new Button
|
{
|
|
Y = Application.GetRealHeight(16 + line * (16 + 44)),
|
X = Application.GetRealWidth(16 + (16 + 104) * j),
|
Width = Application.GetRealWidth(104),
|
Height = Application.GetRealHeight(44),
|
Text = nameObj.value,
|
TextSize = TextSize.text16,
|
TextColor = CSS.CSS_Color.textColor,
|
TextAlignment = TextAlignment.Center,
|
Radius = (uint)Application.GetRealHeight(18),
|
BorderWidth = 1,
|
BorderColor = CSS.CSS_Color.textCancelColor,
|
};
|
FLayout.AddChidren(buttonNameBtn);
|
//删除图标
|
var delIconBtn = new Button
|
{
|
UnSelectedImagePath = "PirIcon/delbuton.png",
|
Y = Application.GetRealHeight(12 + line * (16 + 44)),
|
X = Application.GetRealWidth((16 + 92) + (104 + 16) * j),
|
Width = Application.GetRealWidth(16),
|
Height = Application.GetRealWidth(16),
|
Tag = nameObj,
|
};
|
if (if_bool)
|
{
|
FLayout.AddChidren(delIconBtn);
|
}
|
//删除图标的点击事件
|
delIconBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
var obj = delIconBtn.Tag as Entity.AttributesStatus;
|
action(obj);
|
};
|
if (i % 3 == 0)
|
{
|
//满一行重置j=0值;
|
j = -1;
|
line += 1;
|
}
|
|
}
|
}
|
/// <summary>
|
/// 动态加载按钮列表
|
/// </summary>
|
/// <param name="FLayout">父控件</param>
|
/// <param name="action">回调</param>
|
/// <param name="sum">多少个FrameLayout控件</param>
|
public void AddFrameLayout(FrameLayout FLayout, Action<int,FrameLayout> action, int sum)
|
{
|
|
FrameLayout viewFLayout = new FrameLayout
|
{
|
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
|
};
|
FLayout.AddChidren(viewFLayout);
|
FrameLayout controlFl = new FrameLayout();
|
controlFl.Y = Application.GetRealHeight(319);
|
controlFl.X = Application.GetRealWidth(16);
|
controlFl.Width = Application.GetRealWidth(343);
|
controlFl.Height = Application.GetRealHeight(328);
|
controlFl.BackgroundColor = CSS.CSS_Color.view;
|
controlFl.Radius = (uint)Application.GetRealHeight(12);
|
viewFLayout.AddChidren(controlFl);
|
///添加遥控器
|
Button text3Btn = new Button
|
{
|
Y = Application.GetRealHeight(12),
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(343 - 16 * 2),
|
Height = Application.GetRealHeight(20),
|
TextSize = TextSize.text14,
|
TextColor = CSS.CSS_Color.textConfirmColor,
|
TextAlignment = TextAlignment.Center,
|
TextID = StringId.tianjiayaokongqi,
|
IsBold = true,
|
};
|
controlFl.AddChidren(text3Btn);
|
viewFLayout.MouseUpEventHandler += (sender1, e1) =>
|
{
|
//关闭允许左滑
|
MainPage.BasePageView.ScrollEnabled = true;
|
viewFLayout.RemoveFromParent();
|
};
|
int line = 0;
|
for (int i = 1, j = 0; i <= sum; i++, j++)
|
{
|
var currpirdeviceFLayout = new FrameLayout
|
{
|
Width = Application.GetRealWidth(80),
|
Height = Application.GetRealWidth(80),
|
X = Application.GetRealWidth(26 + (80 + 25) * j),
|
Y = Application.GetRealHeight(52 + (80 + 12) * line),
|
|
};
|
controlFl.AddChidren(currpirdeviceFLayout);
|
var deviceIconBtn = new Button
|
{
|
Y = Application.GetRealHeight(8),
|
X = Application.GetRealWidth(20),
|
Width = Application.GetRealWidth(40),
|
Height = Application.GetRealWidth(40),
|
UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
|
};
|
currpirdeviceFLayout.AddChidren(deviceIconBtn);
|
var iconNameBtn = new Button
|
{
|
Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
|
Width = Application.GetRealWidth(80),
|
Height = Application.GetRealHeight(17),
|
TextSize = TextSize.text12,
|
TextColor = CSS.CSS_Color.TextualColor,
|
TextAlignment = TextAlignment.Center,
|
};
|
currpirdeviceFLayout.AddChidren(iconNameBtn);
|
var clickBtn = new Button { Tag = i };
|
currpirdeviceFLayout.AddChidren(clickBtn);
|
if (i % 3 == 0)
|
{
|
//满一行重置j=0值;
|
j = -1;
|
line += 1;
|
}
|
GetIconAndText(i, deviceIconBtn, iconNameBtn);
|
clickBtn.MouseUpEventHandler += (sender2, e2) =>
|
{
|
//1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义;
|
int if_value = int.Parse(clickBtn.Tag.ToString());
|
action(if_value, viewFLayout);
|
|
};
|
}
|
}
|
/// <summary>
|
/// 设置图片和备注
|
/// </summary>
|
/// <param name="index">索引值</param>
|
/// <param name="deviceIconBtn">图标Btn</param>
|
/// <param name="deviceNameBtn">设备备注Btn</param>
|
private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn)
|
{
|
string iconPath = "";
|
int deviceNameIndex = 0;
|
switch (index)
|
{
|
case 1:
|
{
|
iconPath = "PirIcon/air.png";
|
deviceNameIndex = StringId.kongtiao;
|
}
|
break;
|
case 2:
|
{
|
iconPath = "PirIcon/tv.png";
|
deviceNameIndex = StringId.dianshi;
|
}
|
break;
|
case 3:
|
{
|
iconPath = "PirIcon/fan.png";
|
deviceNameIndex = StringId.fengshan;
|
}
|
break;
|
case 4:
|
{
|
iconPath = "PirIcon/stb.png";
|
deviceNameIndex = StringId.jidinghe;
|
}
|
break;
|
case 5:
|
{
|
iconPath = "PirIcon/projector.png";
|
deviceNameIndex = StringId.touyingyi;
|
}
|
break;
|
case 6:
|
{
|
iconPath = "PirIcon/dvd.png";
|
deviceNameIndex = StringId.dvd;
|
}
|
break;
|
case 7:
|
{
|
iconPath = "PirIcon/custom.png";
|
deviceNameIndex = StringId.zidingyi;
|
}
|
break;
|
|
}
|
deviceIconBtn.UnSelectedImagePath = iconPath;
|
deviceNameBtn.TextID = deviceNameIndex;
|
}
|
/// <summary>
|
/// 获取设备类型str
|
/// </summary>
|
/// <param name="index">索引值</param>
|
public static string GetTypeString(int index)
|
{
|
string type = "";
|
switch (index)
|
{
|
case 1:
|
{
|
//空调
|
type = "ac-" + SPK.AcIr;
|
}
|
break;
|
case 2:
|
{
|
//电视
|
type = "tv-" + SPK.TvIr;
|
}
|
break;
|
case 3:
|
{
|
//风扇
|
type = "fan-" + SPK.FanIr;
|
}
|
break;
|
case 4:
|
{
|
//机顶盒
|
type = "set_top_box-" + SPK.StbIr;
|
}
|
break;
|
case 5:
|
{
|
//投影仪
|
type = "projector-" + SPK.PjtIr;
|
}
|
break;
|
case 6:
|
{
|
//影碟机
|
type = "dvd-" + SPK.DvDIr;
|
|
}
|
break;
|
}
|
return type;
|
}
|
/// <summary>
|
/// 获取列表
|
/// </summary>
|
/// <param name="tag">标记值</param>
|
/// <returns></returns>
|
public List<string> GetList(string tag)
|
{
|
List<string> list = new List<string>();
|
switch (tag)
|
{
|
case "默认按钮":
|
{
|
list.Add(Language.StringByID(StringId.dianyuan));
|
list.Add(Language.StringByID(StringId.yinliangjia));
|
list.Add(Language.StringByID(StringId.yinliangjian));
|
list.Add(Language.StringByID(StringId.pindaojia));
|
list.Add(Language.StringByID(StringId.pindaojian));
|
list.Add(Language.StringByID(StringId.shang));
|
list.Add(Language.StringByID(StringId.xia));
|
list.Add(Language.StringByID(StringId.zuo));
|
list.Add(Language.StringByID(StringId.you));
|
list.Add(Language.StringByID(StringId.jingyin));
|
list.Add(Language.StringByID(StringId.queren));
|
list.Add(Language.StringByID(StringId.bofang));
|
list.Add(Language.StringByID(StringId.xiayibu));
|
list.Add(Language.StringByID(StringId.tuichu));
|
list.Add(Language.StringByID(StringId.caidan));
|
list.Add(Language.StringByID(StringId.zanting));
|
list.Add(Language.StringByID(StringId.fanhui));
|
list.Add(Language.StringByID(StringId.tingzhi));
|
list.Add(Language.StringByID(StringId.zhuye));
|
list.Add(Language.StringByID(StringId.kuaijin));
|
list.Add(Language.StringByID(StringId.kuaitui));
|
list.Add(Language.StringByID(StringId.dingshi));
|
|
}
|
break;
|
}
|
return list;
|
}
|
}
|
}
|