Lib_displaysize - ширина и высота дисплея в текущий момент
Вложений: 3
Библиотека позволяет узнать ширину и высоту дисплея в пикселях в данный момент времени.
Стандартные функции getWidth и getHeight всегда возвращают те размеры, которые были при запуске приложения. Но ширина с высотой могут меняться в процессе работы мидлета. На некоторых телефонах, в частности, смартфонах nokia: n82, 5800, n97, n95 8gb, e66 и многих других - происходит автоматический поворот экрана при повороте самого телефона. Т.е. ширина "меняется" с высотой. Но при использовании getWidth и getHeight мидлет не знает об этом и продолжает выводить информацию за пределы экрана, а часть экрана наоборот начинает пустовать. Могут быть и другие случаи, когда размеры изменяются. Всё это будет учитываться при использовании функций библиотеки. Библиотека содержит 4 функции: init - инициализация библиотеки. Нужно вызывать перед использованием других функций. Лучше - сразу после запуска мидлета. integer lastwidth - возвращает текущую ширину в пикселях. integer lastheight - возвращает текущую высоту в пикселях. integer is_resized - проверяет, изменилась ли ширина или высота с момента последнего вызова is_resized(или запуска мидлета). Если какой-либо размер изменился - вернёт 1. Иначе вернёт 0. Пример использования библиотеки: Код:
Program testsize; |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Как раз бьюсь над проблемой разрешения экрана в 5800. Спасибо.
|
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Странно. Потестил либу, используя приведённый автором пример. Либа реагирует на поворот экрана, но размер экрана всё равно выдаёт некорректный, а именно 320x360 или 360x320.
А реально разрешение экрана на 5800 значительно больше. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Цитата:
Код:
Nokia-MIDlet-On-Screen-Keypad: no Потому что эта экранная клавиатура и отъедает пространство на экране. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Вложений: 3
Новая версия библиотеки
Не используйте библиотеку из первого сообщения в этой теме Обновил либу. Немного изменился принцип работы. Теперь функции lastwidth и lastheight возвращают не текущие размеры экрана, а размеры, которые были во время последнего выполнения функции is_resized или запуска мидлета(т.е. выполнения функции init - не забывайте о ней). Кроме того, is_resized реагирует на изменение размеров с задержкой в 200 миллисекунд. Это сделано из-за того, что "перестроение" экрана при изменении его размеров происходит не мгновенно, а может происходить, так сказать, "рывками". Небольшая задержка избавит от связанных с этим проблем. Функция не тормозит работу программы - она просто говорит, что размеры не изменились, если после изменения прошло меньше 200 миллисекунд. Обновлённые файлы в приложении к этому сообщению: библиотека, её исходный код и пример. В скомпилированном jar файле в архиве с примером уже отключена экранная клавиатура на Nokia 5800, N97 и других смартфонов на базе S60 5-го издания. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Так как являюсь обладателем девайса 5800 и как раз подумывал о реализации подобного, но руки пока не доходили, то очень полезно =) Если бы можно было, нажал бы пять раз на кнопку Полезно!
|
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Вложений: 2
Библиотека может конфликтовать с другими библиотеками, в которых происходит переинициализация дисплея. Например, с lib_game или lib_sensor2.
Проблема решается скрещиванием библиотек. Если вы не можете сделать это самостоятельно - обратитесь к автору конфликтующей библиотеки или ко мне. Во вложении прикладываю Lib_sensordisplaysize - результат скрещевания lib_displaysize с некоторыми функциями lib_game(или lib_sensor2). А именно - функции для работы с сенсорным дисплеем: integer pointer_pressed_x; - возвращает координату касания экрана по x integer pointer_pressed_y; - возвращает координату касания экрана по y integer clear_results; - сбрасывает данные о касании экрана Исходный код прилагаю. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Как раз сегодня боролся с глюками при инициализации сенсора (lib_sensor2) :) После танцев с бубном удалось победить, но я обязательно потестирую твою новую либу.
|
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Bruteo, а можно ли ещё добавить pointer_released_x и pointer_released_y ?
|
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Вот какая тема интересная.
Я тоже скрещивал библиотеки sensor + rc + displaysize + поворот джойстика. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Вложений: 2
Цитата:
|
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Кстати, для 5800 помимо параметра Nokia-MIDlet-On-Screen-Keypad: no
Можно ещё использовать такие параметры: Nokia-MIDlet-On-Screen-Keypad: gameactions Nokia-MIDlet-On-Screen-Keypad: navigationkeys В зависимости от того, какой тип экранного джойстика мы хотим увидеть. Также довольно интересные результаты дают параметры: Nokia-MIDlet-Original-Display-Size: 240,320 Nokia-MIDlet-Target-Display-Size: 360,640 и Nokia-MIDlet-Original-Display-Size: 240,320 Nokia-MIDlet-Target-Display-Size: 360,480 А ещё стоит попробовать: Nokia-MIDlet-Category: Game Nokia-MIDlet-App-Orientation: landscape (или portrait) Параметр Nokia-MIDlet-Canvas-Scaling-Orientation-Switch: false по-идее должен отключить возможность автоматического поворота экрана. |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Начал использовать либу в fncalc. Можно посмотреть на результат применения библиотеки в реальном приложении:
http://frolov.net/ru/fncalc/ |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
На телефонах типа LG KP500 и Samsung Star (S5230) для включения полноэкранного режима в манифест нужно добавлять такие строки:
MIDlet-Touch-Support: True UseNativeTextButtons: false ReverseSoftkeys: true UseNativeCommands: false LGE-MIDlet-TargetLCD-Height: 400 LGE-MIDlet-TargetLCD-Width: 240 Хотя сенсорные Nokia (5800) могут вообще не запускать программу с таким манифестом. Там полноэкранный режим включается как описано выше в этой ветке форума. Я для Nokia обычно применяю такой манифест: Nokia-MIDlet-No-Exit: true Nokia-MIDlet-Category: Game Nokia-MIDlet-On-Screen-Keypad: no Nokia-MIDlet-App-Orientation: portrait Nokia-MIDlet-Canvas-Scaling-Orientation-Switch: false |
Ответ: Lib_displaysize - ширина и высота дисплея в текущий момент
Цитата:
|
Часовой пояс GMT +4, время: 16:16. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot