Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

Центровка текста на Adafruit GFX

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#1

Сообщение aidar_i » 04.12.2018{, 12:31}

Попробуйте так
display.width() ширина,
display.height() высота дисплея
tape.length() ширина текста (вместо tape поставьте название какое у Вас в скетче),
int spacer промежутки между буквами. Принял =1,

y = (matrix.height() -(font.height()+1)) / 2
х= (display.width()- font.width() * tape.length() - 1 - spacer)/2;

Для шрифта 5x7
y = (matrix.height() -(7+1)) / 2
х= (display.width()- 5 * tape.length() - 1 - 1 )/2

Если увеличенный шрифт , умножайте на размеры шрифта на size
size
Последний раз редактировалось aidar_i 04.12.2018{, 13:01}, всего редактировалось 1 раз.

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#2

Сообщение aidar_i » 04.12.2018{, 13:02}

Вы на счет него вроде писали

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#3

Сообщение aidar_i » 04.12.2018{, 13:06}

Нет , координаты,
Центровка производится на конкретном дисплее, а не в библиотеке.
Например в Max72xxPanel int y = (matrix.height() - 8) / 2
На TFT int y = (tft.height() - 8) / 2

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#4

Сообщение aidar_i » 04.12.2018{, 13:33}

Для конкретного дисплея добавляется и впереди его название с его библиотеки здесь в Adafruit SSD1306 void display(); .

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#5

Сообщение aidar_i » 04.12.2018{, 13:47}

Ну если Вы вставите это в эту библиотеку и потом будете выдавать функцию для напримерSSD1306 matrix.setCursor=(CENTER,у) да возможно.

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#6

Сообщение aidar_i » 04.12.2018{, 13:53}

Но нужно ли это? Если можно в скетче сделать? Вам просто нужно обратиться в форум, где скетчем работают, там ,думаю , помогут побыстрее.

Отправлено спустя 1 минуту 13 секунд:
Ошибся это для Max72xxPanel , там display

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#7

Сообщение aidar_i » 04.12.2018{, 14:07}

:smile113: В чем проблема? вставьте на входы х и у формулу.
Только не Вашу, а мою.
Я так делал для матрих
Последний раз редактировалось aidar_i 04.12.2018{, 14:16}, всего редактировалось 1 раз.

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#8

Сообщение aidar_i » 04.12.2018{, 14:19}

Я Вам дал формулу, проверьте сперва высоту.

Отправлено спустя 46 секунд:
Я не около компа, чтобы вставить.
Правильно делаете, что лезете!

Отправлено спустя 9 часов 17 минут 35 секунд:
Проверяйте
БП Дисплея OLED центровка.flp
(497.97 КБ) 90 скачиваний

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Центровка текста для OLED SSD1306 на библиотеке Adafruit GFX

#9

Сообщение aidar_i » 05.12.2018{, 00:28}

У меня там размеры шрифта и промежуток задаются самим в параметрах, не смог, чтобы они вставлялись из библиотеки.Если это нужно, может кто нибудь подправит.

Ответить

Вернуться в «Разработка пользовательских блоков»