[Amazfit] GreatApo:
Indeed SLPT is tricky. Most if not all of the elements writen in GreatWidget.java are custom texts. To write anything you can just do this: (I added some comments for you)

// You can see how to define the following values in the settings/LoadSettings.java
// settings.am_pmFontSize = your font size
// settings.am_pmColor = your text color
// settings.am_pmAlignLeft = boolean to align left or center
// settings.am_pmTop = distance from the top edge of the screen
// settings.am_pmLeft = distance from the left edge of the screen
// settings.font_ratio = font ration of reference point (i think you got that last time, more info in the links of the first page under "code help")

SlptLinearLayout ampm = new SlptLinearLayout(); // Make a new SlptLinearLayout
SlptPictureView ampmStr = new SlptPictureView(); // Make image view
ampmStr.setStringPicture( "qwerty" ); // Set an image as string
ampm.add(ampmStr); // Add it in the linear layout
ampm.setTextAttrForAll(
settings.am_pmFontSize,
settings.am_pmColor,
ResourceManager.getTypeFace(service.getResources(), ResourceManager.Font.FONT_FILE)
); // Style all text images in the layout
// Position based on screen on
ampm.alignX = 2;
ampm.alignY = 0;
tmp_left = (int) settings.am_pmLeft;
if(!settings.am_pmAlignLeft) {
// If text is centered, set rectangle
ampm.setRect(
(int) (2 * tmp_left + 640),
(int) (((float)settings.font_ratio/100)*settings.am_pmFontSize)
);
tmp_left = -320;
}
ampm.setStart(
(int) tmp_left,
(int) (settings.am_pmTop-((float)settings.font_ratio/100)*settings.am_pmFontSize)
);// this positions the layout int the screen
slpt_objects.add(ampm);// add the layout in the items that would be returned to be printed on screen

The code is a little complex because it includes my positions system that provides same top/left position values for screen on/off. Stock watchfaces have different position values for screen on and off :P

You can also use the following simple code, however it will have different position from screen on text, no text align, and it is not tested :silly: :

SlptLinearLayout ampm = new SlptLinearLayout(); // Make a new SlptLinearLayout
SlptPictureView ampmStr = new SlptPictureView(); // Make image view
ampmStr.setStringPicture( "qwerty" ); // Set an image as string
ampm.add(ampmStr); // Add it in the linear layout
ampm.setStart(
(int) settings.am_pmLeft,
(int) settings.am_pmTop
);// this positions the layout int the screen
slpt_objects.add(ampm);// add the layout in the items that would be returned to be printed on screen

Now the last problem is updating this text. All slpt function run once... only once.... when you initiate the watchface. All stock elements the change (time etc) are autocratically updated. The only widget that reboots the whole slpt intent (like all the custom widgets in Greatfit) is the weather. The notification counter, xdrip, alarm, phone batttery and phone alarm are updated directly from the libs (like the weather). Widgets like the world time are updated with an self run function that runs its self based on time, take a look at that function ("customRefresher") in the GreatWidget.java.

Good luck :)

Something is probably crashing. Can you name the elements you have selected as widgets or upload a screenshot?

Unfortunately meshing with slpt is not easy. This is the best we can do for now. If you find you setup (chosen widgets in GreatFit settings) select only widgets that are used in stock watchfaces.