This is not my effort, I got it on the forum and it requires the MiBandWFTool1.4.2, if you want to use other tools the syntax may be a little bit different (ie. instead of "Steps->Number" it's "Steps->Step"). I added a couple of
and I think this file has most of the things. I only ran across ImageGoal (vice versa) property in one of the watch faces but forgot what the correct syntax is.
Feel free to add to this post if I'm missing anything.
You can also search "Jackall Digital how to makemi band 4 watch face" where I have a total of 5 videos on how to make them.
Code: Select all
{
"Background": {
"Image": {
"X": 0,
"Y": 0,
"ImageIndex": 0
}
},
"Time": {
"Hours": {
"Tens": {
"X": 12,
"Y": 34,
"ImageIndex": 1,
"ImagesCount": 3
},
"Ones": {
"X": 62,
"Y": 34,
"ImageIndex": 4,
"ImagesCount": 10
}
},
"Minutes": {
"Tens": {
"X": 12,
"Y": 102,
"ImageIndex": 14,
"ImagesCount": 6
},
"Ones": {
"X": 62,
"Y": 102,
"ImageIndex": 20,
"ImagesCount": 10
}
},
"Seconds": {
"Tens": {
"X": 0,
"Y": 102,
"ImageIndex": 30,
"ImagesCount": 10
},
"Ones": {
"X": 10,
"Y": 102,
"ImageIndex": 30,
"ImagesCount": 10
}
},
"DelimiterImage": {
"X": 57,
"Y": 65,
"ImageIndex": 10
}
},
"Activity": {
"Steps": {
"Number": {
"TopLeftX": 19,
"TopLeftY": 202,
"BottomRightX": 54,
"BottomRightY": 213,
"Alignment": "TopLeft",
"Spacing": 1,
"ImageIndex": 30,
"ImagesCount": 10
},
"StepsImageIndex": 38
},
"Calories": {
"Number": {
"TopLeftX": 19,
"TopLeftY": 183,
"BottomRightX": 59,
"BottomRightY": 195,
"Alignment": "TopLeft",
"Spacing": 1,
"ImageIndex": 30,
"ImagesCount": 10
},
"SuffixImageIndex": 103
},
"Pulse": {
"Number": {
"TopLeftX": 19,
"TopLeftY": 218,
"BottomRightX": 59,
"BottomRightY": 230,
"Alignment": "TopLeft",
"Spacing": 1,
"ImageIndex": 30,
"ImagesCount": 10
},
"NoDataImageIndex": 32
},
"Distance": {
"Number": {
"TopLeftX": 60,
"TopLeftY": 218,
"BottomRightX": 116,
"BottomRightY": 229,
"Alignment": "Right",
"Spacing": 1,
"ImageIndex": 30,
"ImagesCount": 10
},
"SuffixImageIndex": 92,
"DecimalPointImageIndex": 91
}
},
"Date": {
"MonthAndDay": { //use separate or oneline, don't use both
"Separate": {
"Month": {
"TopLeftX": 98,
"TopLeftY": 76,
"BottomRightX": 118,
"BottomRightY": 92,
"Alignment": "Center",
"Spacing": 0,
"ImageIndex": 30,
"ImagesCount": 10
},
"Day": {
"TopLeftX": 76,
"TopLeftY": 34,
"BottomRightX": 96,
"BottomRightY": 50,
"Alignment": "Center",
"Spacing": 1,
"ImageIndex": 30,
"ImagesCount": 10
}
},
"OneLine": {
"Number": {
"TopLeftX": 65,
"TopLeftY": 63,
"BottomRightX": 115,
"BottomRightY": 77,
"Alignment": "TopRight",
"Spacing": 2,
"ImageIndex": 11,
"ImagesCount": 10
},
"DelimiterImageIndex": 21
},
"TwoDigitsMonth": true,
"TwoDigitsDay": true
},
"WeekDay": {
"X": 85,
"Y": 115,
"ImageIndex": 61,
"ImagesCount": 21
},
"DayAmpm": {
"X": 95,
"Y": 145,
"ImageIndexAMCN": 82,
"ImageIndexPMCN": 83,
"ImageIndexAMEN": 0,
"ImageIndexPMEN": 0
}
},
"StepsProgress": { //there is also "ImageGoal" or "GoalImage" property that can be used under StepsProgress. It's used to display the daily achievement
"Linear": {
"StartImageIndex": 84,
"Segments": [
{
"X": 10,
"Y": 206
},
{
"X": 20,
"Y": 206
},
{
"X": 30,
"Y": 206
},
{
"X": 40,
"Y": 206
},
{
"X": 50,
"Y": 206
},
{
"X": 60,
"Y": 206
},
{
"X": 70,
"Y": 206
},
{
"X": 80,
"Y": 206
},
{
"X": 90,
"Y": 206
},
{
"X": 100,
"Y": 206
}
]
},
"Circle": {
"CenterX": 63,
"CenterY": 203,
"RadiusX": 29,
"RadiusY": 29,
"StartAngle": 0,
"EndAngle": 360,
"Width": 3,
"Color": "0xFFFFFF"
},
"SolidImage": {
"Start": {
"X": 2,
"Y": 150
},
"End": {
"X": 117,
"Y": 150
},
"ImageIndex": 58,
"Background": {
"X": 2,
"Y": 150,
"ImageIndex": 59
}
}
},
"Status": {
"DoNotDisturb": {
"Coordinates": {
"X": 4,
"Y": 9,
"BoxWidth": 17,
"Alignment": "Left",
"Order": 1
},
"ImageIndexOn": 94,
"ImageIndexOff": 94
},
"Lock": {
"Coordinates": {
"X": 21,
"Y": 9,
"BoxWidth": 17,
"Alignment": "Left",
"Order": 1
},
"ImageIndexOn": 95,
"ImageIndexOff": 95
},
"Bluetooth": {
"Coordinates": {
"X": 38,
"Y": 9,
"BoxWidth": 12,
"Alignment": "Left",
"Order": 1
},
"ImageIndexOn": 96,
"ImageIndexOff": 96
},
"Battery": {
"BatteryConfig": {
"BoxWidth": 0,
"Alignment": 0,
"Order": 0
},
"Text": {
"TopLeftX": 65,
"TopLeftY": 11,
"BottomRightX": 85,
"BottomRightY": 21,
"Alignment": "TopRight",
"Spacing": 1,
"ImageIndex": 97,
"ImagesCount": 10
},
"Icon": {
"X": 94,
"Y": 9,
"ImageIndex": 107,
"ImagesCount": 9
}
}
},
"AnalogDialFace": { //make clock hands usin 2D points (x,y) - the center of the clock hands is point (0,0)
"Hours": {
"OnlyBorder": false,
"Color": "0xFFFFFF",
"Center": {
"X": 60,
"Y": 120
},
"Shape": [
{
"X": 3,
"Y": 0
},
{
"X": 11,
"Y": 0
},
{
"X": 13,
"Y": -3
},
{
"X": 43,
"Y": -3
},
{
"X": 45,
"Y": 0
},
{
"X": 43,
"Y": 4
},
{
"X": 13,
"Y": 4
},
{
"X": 11,
"Y": 1
},
{
"X": 3,
"Y": 1
}
],
"CenterImage": {
"X": 56,
"Y": 116,
"ImageIndex": 60
}
},
"Minutes": {
"OnlyBorder": false,
"Color": "0xFFFFFF",
"Center": {
"X": 60,
"Y": 120
},
"Shape": [
{
"X": 3,
"Y": 0
},
{
"X": 11,
"Y": 0
},
{
"X": 13,
"Y": -3
},
{
"X": 57,
"Y": -3
},
{
"X": 59,
"Y": 0
},
{
"X": 57,
"Y": 4
},
{
"X": 13,
"Y": 4
},
{
"X": 11,
"Y": 1
},
{
"X": 3,
"Y": 1
}
],
"CenterImage": { //image that goes over that clock hands, like a "cap" or "lid", you only need one center image per analogdialface
"X": 56,
"Y": 116,
"ImageIndex": 60
}
},
"Seconds": {
"OnlyBorder": false,
"Color": "0xFDA917",
"Center": {
"X": 60,
"Y": 120
},
"Shape": [
{
"X": -11,
"Y": -1
},
{
"X": 59,
"Y": -1
},
{
"X": 59,
"Y": 0
},
{
"X": -11,
"Y": 0
}
],
"CenterImage": {
"X": 56,
"Y": 116,
"ImageIndex": 60
}
}
},
"Other": {
"Animation": { //this is where cool animations go. dependign on image size, color and quantity the watch face can be laggy and drain battery faster
"AnimationImage": {
"X": 0,
"Y": 20,
"ImageIndex": 30,
"ImagesCount": 10,
"X3": 0
},
"Speed": 0,
"RepeatCount": 1000,
"x2": 200
}
},
"Heart": {
"Scale": { //loads images based on actual pulse/heart value so this is not an animation.
"StartImageIndex": 116,
"Segments": [
{
"X": 10,
"Y": 229
},
{
"X": 27,
"Y": 229
},
{
"X": 44,
"Y": 229
},
{
"X": 61,
"Y": 229
},
{
"X": 78,
"Y": 229
},
{
"X": 95,
"Y": 229
}
]
}
}
}