![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Приветствую вас винградовцы!
Дисплей моего телефона 128x160 точек. Сверху у меня строка состояния (на ней отображается уровень заряда батареи и пр. служебная информация), снизу строка для командных клавишь. Я запрашиваю getWidth() и getHeight() и мне возвращается резултат: 128x128 точек, т.е. 32 точки сжираются этими строчками. В некоторых приложениях я видел что экран задействован полностью, помогите советом как это сделать? Это сообщение отредактировал(а) javastic - 26.4.2005, 10:37 -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Очень сильно подозреваю, что это может зависеть от модели телефона.
|
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Т.е. лучше не предпринимать нестандартных ситуаций чтобы потом не возиться с совместимостью?
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Думаю что так.
Но вполне может быть, что все не так уж и страшно - допускаю, что какие-нибудь System properties содержат внутри себя всякие параметры типа высоты верхней строки или еще чего. В таком случае может быть и можно использовать такую штуку - она не выпадает из общих вызовов, т.е. такие вызовы не влияют на переносимость. Если нет такого параметра - ну на нет и суда нет. А если есть - почему бы не попробовать. |
|||
|
||||
| Andrey Spirin |
|
|||
|
Unregistered |
Status bar нельзя будет зарисовать. Soft key bar можно, используя Canvas (только не сможем тогда CommandListener использовать). Придёся свой листенер писать, то есть слушать кнопки через KeyPressed и делать свои обработки.
Например сделай заливку Canvas каким либо цветом. В цикле перебери с 0 до пусть будет 128, увидишь результат |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Я почему спрашивал, потому что видел приложения которые "заливают" весь экран и статус бар в том числе. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Andrey Spirin |
|
|||
|
Unregistered |
Java тут уже тогда не причём, не положено J2ME методам весь экран телефона получать, если этого не разрешено нативным кодом в самом телефоне. Так что тут уже точно никак. Если только сами свою JVM напишите и в телефон спортируете
Кстати, данная функциональнасть с заливкой на весь экран происходила на каких то определённых девайсах? (нельзя ли было списочек хотябы, просто интересно) |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Это телефон SonyEricsson k500i, я сделал две фотки из двух игр, на первой фотке можно увидеть что канва перекрывает весь экран
![]() на второй видны статусная и коммандная строки ![]() p.s. фотки делались между прочем на Motorola V600 -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Andrey Spirin |
|
|||
|
Unregistered |
скорее всего использовалось специфичное API, специально предназначеное для SonyEricsson, в первой игрушке. Стандартным сановским API это точно не возможно. Попробуй первую игрушку запустить, ну хотя бы на том же самом V600. Больше чем уверен, что даже проинсталироваться она у тебя не сможет в Moto
|
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Вполне вероятно. Только эта игра не передаётся, т.к. наложены видимо секьюрити на распространение.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
На каждую хитрую Ж... как говорится, найдётся свой .... с ВИНТОМ.
Да, я знаю, что эти вещи защищаются и всё такое. Можно в принципе в интернете поискать, должно что-то уже быть что позволяет обратится к файловой системе телефона. Попробуй, может быть чего нить найдёшь. Я с SonyEricsson не работал, так что здесь ничего не могу сказать. Поиск по Gogle рулит! Если можно будет обратится из какой то тулзины (не из самого телефона, через JSR-75 API) к файловой системе телефона, то скорее всего спокойно можно будет вытащить jad и jar файлики. Дерзай! Если чего найду, то сообщу. -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
попрбуй здесь посмотреть http://www.google.ru/search?hl=ru&q=SonyEr...system+tool&lr=
поиграйся со словами в запросе. Более некогда в форуме быть -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Привет. Например есть такая тулза http://sourceforge.net/projects/fma/, я ей когда-то пользовался, но она у меня глючит ужасно, а так функцонал хороший.
Вот более крутая штука http://edesktop.sourceforge.net/, в которая даже есть Net Monitor gsm сети. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
Хорошо, используя эти тулзы ты можешь до файловой системы добраться. Ты эти закрытые файлики можешь выковырять этими тулзами? Пробовал нати JAD/JAR файлы? Хоть какие нибудь смог вытащить из телефона?
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Dancer, ещё не пробовал, но думаю что смогу без проблем. Чуть-чуть освобожусь и вытяну их из недр =)
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
я так думаю это будет решение всех проблем. setFullScreenMode(boolean mode) это стандартный метод для Canvas. Кнопки софтварные самому придётся писать и обрабатывать. Этим методом нельзя закрасить статус бар. Так что извиняйте
Думаю, простенький код этому сможет помочь. в классе наследуемом от Canvas делаю вызов this.setFullScreenMode(true) что означает, что моя канва всегда будет на весь экран, не включая статус бар.
Спасибо за внимание, Андрюха -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| Nemesis |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 3 Всего: 5 |
Зачем говорить, что приложения в полный экран встречаются редко? Их уйма на самом деле. Любая нормальная игра показывается во весь экран и заливает всю область. И дело не в модели телефона. А реально нужен АПИ, вот где его можно найти... Это уже друой вопрос. А насчет этого:
довольно странно, поскольку функции,т.е. методы класса Display возвращают истинные размеры экрана без всяких "урезок". Быть может ты все-таки использовал getClipHeight() и getClipWidth() ? --------------------
|
||||
|
|||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Nemesis нет именно getWidth() и getHeight(), вот поэтому для меня это и стало удивительно
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 3 Всего: 5 |
Да, действительно, для полного экрана достаточно вызвать метод setFullScreenMode(true) и экран переводится в полноэкранку. CommandListener новый писать не нужно, клавиши итак обрабатываются, просто нажимая какую-либо функциональную клавишу выпадает список меню с нужными действиями. По поводу getWidth() и getHeight() даже не знаю
На эмуляторе программа работает прекрасно, все хорошо и без глюка, но вот стоит перенести на реальный телефон приложение и появляется след: Приложение работает в графическом режиме, скажем бегает там мячик, нажимаю клавишу с информацией о телефоне и - на эмуляторе все в порядке, т.е. экран перерисовывается и выводится инфа в Form в виде StringItem. - на телефоне задний(графика) экран не перерисоваля и инфа выводится поверх этого дела, но ! стоит нажать клавишу вверх В чем здесь может быть ошибка? Кому интересно, могу код показать. Но хотелось бы разрешить эту проблему. Может быть дело в телефоне? Ведь эмулятор нормально работает, причем тестил на достаточном кол-ве эмуляторов( где-то на 6-ти). --------------------
|
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Давай, запости код, я думаю кому-то будет интересно.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 3 Всего: 5 |
Вот код.Только там все без коммента, но я думаю итак все понятно.
Опущен класс отвечающий за спрайт, да он тут и не особо-то и нужен.
Надеюсь код понятен,если что, распишу все. --------------------
|
|||
|
||||
| Zandr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: нет Всего: 13 |
Мдя, ребята, setFullScreenMode() это конечно хорошо, только в спецификации MIDP1.0 его еще нет... Так что делайте две канвы (под MIDP1 и MIDP2) с конструкторами по умолчанию. Выносите методы, которые вызываются извне, в интерфейс, добавляйте, что эти Canvas implements ваш интерфейс, а в мидлете (или где вы создаете вашу канву) создавайте ее ч-з:
Можно даже без интерфейса обойтись. Просто пишется MyCanvas и MyFullScreenCanvas (которая наследует от MyCanvas и делает вызовы к setFullScreen.....). А в приложении определяется MIDP и по результату загружается нужный класс канвы, с помощью которого создается инстанс, который потом кастится в MyCanvas. Извне естественно fullScreenMode менять нельзя, только из MyFullScreenCanvas. |
|||
|
||||
| NickTo |
|
|||
|
Unregistered |
чтоб в игре перекрыть статусбар.. попробуй в констукторе прописать следующий метод
|
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Nikolka52 мы не поддерживаем и не приветствуем взлом чужих программ, Мы пытаемся делать их сами.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Steeller |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.9.2005 Репутация: нет Всего: нет |
Канва на весь экран реализуется сугубо под каждую платформу отдельно. Например, в Нокии вместо Canvas используется FullCanvas
public class Game extends FullCanvas implements Runnable {... И т.д. Добавлено @ 16:11 При этом нужно обязательно подключить специфичную библиотеку. Для Нокии, опять же: import com.nokia.mid.ui.*; Это сообщение отредактировал(а) Steeller - 14.9.2005, 16:12 |
|||
|
||||
| W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
блин, а что такое не работает в MIDP2 (ну для к500i точно работатет):
??? упс. вторую страницу не дочитал с первым MIDP повозиться надо Это сообщение отредактировал(а) W0LF - 9.2.2006, 19:30 -------------------- iOS developer |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |