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

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Попробуйте так
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 дек 2018, 13:01, всего редактировалось 1 раз.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Вы на счет него вроде писали
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Нет , координаты,
Центровка производится на конкретном дисплее, а не в библиотеке.
Например в Max72xxPanel int y = (matrix.height() - 8) / 2
На TFT int y = (tft.height() - 8) / 2
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Для конкретного дисплея добавляется и впереди его название с его библиотеки здесь в Adafruit SSD1306 void display(); .
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Ну если Вы вставите это в эту библиотеку и потом будете выдавать функцию для напримерSSD1306 matrix.setCursor=(CENTER,у) да возможно.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

Отправлено спустя 1 минуту 13 секунд:
Ошибся это для Max72xxPanel , там display
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

:smile113: В чем проблема? вставьте на входы х и у формулу.
Только не Вашу, а мою.
Я так делал для матрих
Последний раз редактировалось aidar_i 04 дек 2018, 14:16, всего редактировалось 1 раз.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

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

Отправлено спустя 9 часов 17 минут 35 секунд:
Проверяйте
БП Дисплея OLED центровка.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей