Is there any way of obtaining the width of a string of text, in pixels, prior to printing it so that it can be placed dead centre in the middle of the screen no matter what length it is?
If it’s a standard null terminated character array or a quoted string like “my string” and you know the width of a character, including inter-character spacing:
#define CHAR_WIDTH 6 // character width in pixels including inter-character spacing widthInPixels = strlen("my string") * CHAR_WIDTH; // string length in pixels
OK but how would I know the widths of the characters?
If you’re using the text functions in the Arduboy or Arduboy2 libraries, at size 1 a charater is 5 pixels wide. 1 pixel is added at the end of each character to space them apart, so 6 pixels total width.
Technically, the total width of a string would be 1 pixel less if you don’t want to include the space pixel at the end of the last character, so possibly you would use:
widthInPixels = strlen("my string") * 6 - 1;
OK thanks i’ll give that a try.