总体说明
-
(X,Y)均为120*240像素中以左上角为(0,0)的像素坐标
-
TopLeftX
&TopLeftY
均为左上角坐标
BottomRightX
&BottomRightY
为右下角坐标
由此确定一个矩形区域,再根据Alignment
确定对齐方式(仅限文字,图片直接
X
&Y
就行了) -
ImageIndex
是从第XX号图片开始读取ImagesCount
是读取几张图片有一些代码中包含简中、繁中、英文就直接一路按顺序拍下去,所以会出现
"ImagesCount": 20+
这种情况。 -
Spacing
是文字间距,一般设置为1 -
关于打不打
,
:json文件的标准语法,下面还有并列就要打逗号,如果是最后一项了就不用打。
所有类别(可以打乱顺序)
{
"Background": {
"Image": {
"X": 0,
"Y": 0,
"ImageIndex": 0
}
},
"Time": {
"Hours": {
}
"Minutes": {
}
"Seconds": {
} ## 一般不用秒,我也不知道为什么
},
"Activity": {
"Steps": {
}
"Pulse": {
}
},
"Heart": {
}, ##请仔细看步数具体语法后再使用,与上面`Activity`中`pulse`都是心率显示
"StepsProgress": {
}, ##请仔细看步数具体语法后再使用,与上面`Activity`中`Steps`都是步数显示
"Date": {
"MonthAndDay": {
},
"DelimiterImageIndex": 21
},
"TwoDigitsMonth": true,
"TwoDigitsDay": true
},
"WeekDay": {
},
"DayAmpm": {
}
},
"Status": {
"DoNotDisturb": {
"Coordinates": {
},
"ImageIndexOn": 58
},
"Lock": {
"Coordinates": {
},
"ImageIndexOn": 59
},
"Bluetooth": {
"Coordinates": {
},
"ImageIndexOff": 57
},
"Battery": {
"UnknownType": {
},
"Text": {
},
"Icon": {
}
}
},
"Other": {
}
}
}
详细语法
背景图片
{
"Background": {
"Image": {
"X": 0,
"Y": 0,
"ImageIndex": 0
}
},
时间
"Time": {
"Hours": {
"Tens": {
"X": 48,
"Y": 22,
"ImageIndex": 1,
"ImagesCount": 10
},
"Ones": {
"X": 81,
"Y": 22,
"ImageIndex": 1,
"ImagesCount": 10
}
},
"Minutes": {
"Tens": {
"X": 59,
"Y": 76,
"ImageIndex": 11,
"ImagesCount": 10
},
"Ones": {
"X": 81,
"Y": 76,
"ImageIndex": 11,
"ImagesCount": 10
}
}
},
日期
"Date": {
"MonthAndDay": {
"OneLine": {
"Number": {
"TopLeftX": 14,
"TopLeftY": 190,
"BottomRightX": 72,
"BottomRightY": 190,
"Alignment": "TopRight", ##或者"TopLeft",即左对齐
"Spacing": 2,
"ImageIndex": 11,
"ImagesCount": 10
},
"DelimiterImageIndex": 21
},
"TwoDigitsMonth": true,
"TwoDigitsDay": true
},
"WeekDay": {
"X": 74,
"Y": 190,
"ImageIndex": 22,
"ImagesCount": 21
},
"DayAmpm": {
"TopLeftX": 90,
"TopLeftY": 173,
"ImageIndexAMCN": 43,
"ImageIndexPMCN": 44,
"ImageIndexAMEN": 45,
"ImageIndexPMEN": 46
}
},
步数
步数显示的话有几种,可以是环状,数字显示,条状等(当然可以混用)
-
数字显示
非常重要:数字显示的步数是在
Activity
下的子项目,但是环状是单独的类"Steps": { "Step": { "TopLeftX": 49, "TopLeftY": 220, "BottomRightX": 78, "BottomRightY": 234, "Alignment": "TopLeft", "Spacing": 1, "ImageIndex": 47, "ImagesCount": 10 } }
-
条状显示
条状显示实际上是一格一格组成,像下面例子所示,
Segments
中项越多分的就越细,有一个官方的只分了八个,可以做一些参考。"StepsProgress": { "Linear": { "StartImageIndex": 70, "Segments": [ { "X": 3, "Y": 204, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 13, "Y": 204, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 23, "Y": 204, "X2": 0, "Y2": 0, "X3": 0 } ] } },
-
环状显示
非常重要:环状显示是单独一个类,不要放到
Activity
里去了!!"StepsProgress": { "Circle": { "CenterX": 61, "CenterY": 108, "RadiusX": 45, "RadiusY": 45, "StartAngle": -47, "EndAngle": 112, "Width": 3, "Color": "0xFFFFFFFFFFF9FBF0" } },
CenterX
和CenterY
:既然是环状就有个圆心,这就是圆心坐标了。RadiusX
和RadiusY
:半径,但是我也不知道半径有两个,设置成一样就好了StartAngle
和EndAngle
:开始结束角度,整圆设置为0和360就好Width
:环状宽度
心率
心率的显示原理和步数一模一样,我就不多说了。
-
数字显示
-
条状显示
-
环状显示
-
格状显示
什么是格状显示:五格类似
- - - - -
,其中-
就是你放的图片。因为小米把心率分成五个区间所以心率里这个比较常用。(其实步数也可以用,但是不太好用所以就没在步数里写了)"Heart": { "Scale": { "StartImageIndex": 78, "Segments": [ { "X": 70, "Y": 215, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 70, "Y": 215, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 70, "Y": 215, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 70, "Y": 215, "X2": 0, "Y2": 0, "X3": 0 }, { "X": 70, "Y": 215, "X2": 0, "Y2": 0, "X3": 0 } ] } }
状态
状态是指上面那一行图标,这个基本上不需要怎么改,只有电量可以切换数字/图标。
"Status": {
"DoNotDisturb": {
"Coordinates": {
"X": 4,
"Y": 5,
"X2": 17,
"Y2": 2,
"X3": 1
},
"ImageIndexOn": 56
},
"Lock": {
"Coordinates": {
"X": 21,
"Y": 5,
"X2": 17,
"Y2": 2,
"X3": 1
},
"ImageIndexOn": 57
},
"Bluetooth": {
"Coordinates": {
"X": 38,
"Y": 5,
"X2": 12,
"Y2": 2,
"X3": 1
},
"ImageIndexOff": 58
},
"Battery": {
"UnknownType": {
"TopLeftX": 0,
"TopLeftY": 0,
"BottomRightX": 0,
"BottomRightY": 0,
"Alignment": 0,
"Spacing": 0,
"ImageIndex": 0,
"ImagesCount": 0
},
"Text": {
"TopLeftX": 64,
"TopLeftY": 6,
"BottomRightX": 84,
"BottomRightY": 16,
"Alignment": "TopRight",
"Spacing": 1,
"ImageIndex": 59,
"ImagesCount": 10
},
"Icon": {
"X": 94,
"Y": 5,
"ImageIndex": 69,
"ImagesCount": 9
}
}
},
-
电量
"Battery": { "UnknownType": { "TopLeftX": 0, "TopLeftY": 0, "BottomRightX": 0, "BottomRightY": 0, "Alignment": 0, "Spacing": 0, "ImageIndex": 0, "ImagesCount": 0 }, "Text": { "TopLeftX": 64, "TopLeftY": 6, "BottomRightX": 84, "BottomRightY": 16, "Alignment": "TopRight", "Spacing": 1, "ImageIndex": 59, "ImagesCount": 10 }, "Icon": { "X": 94, "Y": 5, "ImageIndex": 69, "ImagesCount": 9 } }
其它
其它一般用于动图的制作,也可以再加一个普通图片来覆盖其它东西(虽然一般不会这么用)。
"Other": {
"Animation": {
"AnimationImage": {
"X": 0,
"Y": 35,
"ImageIndex": 69,
"ImageCount": 8,
"X3": 100
},
"x1": 0,
"y1": 8,
"Interval": 200
}
}
其中Interval
是时间间隔,单位也许是毫秒?
至于那些X1,Y1,X3是什么我也不太知道。。。
实例
其实多看一点json文件就会了,推荐一个网站【https://www.bandbbs.cn】
我自制的一个表盘:https://www.bandbbs.cn/threads/844/