![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| nangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Привет всем,
народ поделитесь как можно засунуть картинку(карту города) в програмку. Размер карты 1153X1514. Сложность в том, чтобы НЕ разделять карту на равные части, а как-то выполнить перемещение по ней используя базовый крестик телефона?????????? После чего и нарисовать на выбранной точке другой рисунок и отправить его координаты на сервер. Может кто уже далал подобные проги, если не трудно помогите примером. Спасибо! |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Что вы хотите этим сказать и какой формат карт вы используете? |
|||
|
||||
| nangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
карта в GIF формате, размеры написал.
если можно, то покажите кодом со списком подключаемых библиотек. СПАСИБ!! Это сообщение отредактировал(а) nangel - 27.2.2008, 10:58 |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Что значит не разделяя карту на равные части? Всеровно придёца выдирать из неё кусок, не загружать же всю карту в память телефона.. ресурсов не хватит.
|
|||
|
||||
| eugine_s |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Тут однозначно нужно резать карту, так как столько в память ты не сможешь использовать:
1153 * 1500 * 2 (каждый пиксель картинки в памяти занимает 2 б) = 3,5 Мб и это только под одну картинку... Нужно резать, а чтобы плавно прокрутку показывать, можно подгружать не только квадрат который отображается, но и соседние квадраты. Если схематически, то вот так: 1 2 3 4 5 6 7 8 9 5-й квадрат отображается на экране(считается, что размер квадрата равен размеру экрана (ну или размеру прямоугольника куда выводиться карта)) , а в памяти так же висят соседние квадраты 1 - 4, 6 - 9. Пусть тебе нужно двигаться в правую сторону (в направлении квадрата 6), как только сместился на половину квадрата (т.е. половина 6-го квадрата), то квадраты 1,4,7 - освободил из памяти и загрузил другие квадраты. Что-то типа такого. Но следует учитывать, что при большом размере экрана(места для отображения карты), этот алгоритм почти не сильно экономит память. Например, размер квадрата получился 176х220, тогда размер занимаемой памяти 176*220*9*2 = 700 кб, но если размер квадрата 240х320, то размер памяти = 1,3 мб - а это уже много. Тогда можно модифицировать алгоритм вот так: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 И на экране отображаются квадраты 5,6,9,10 (квадрат равен 1/4 размера экрана) При экране 176х220, память занимаемая будет равна: 44 * 55 * 16 * 2 = 77 кб (44 = 176 / 4, 55 = 220 / 4) |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Да... Только перед всем этим тебе нужно разобраца со структурой формата Gif, чтобы знать как вытащить биты для нужного квадрата ;)
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Не нужно разбираться в форате gif. Режешь в графическом редакторе (или пишешь программу резалку если у тебя много карт).
Сохранить куски лучше в png, gif не все телефоны понимают. |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Вот поэтому то ему и нужно разобраться в GIF формате, выдирать куски байт с палитрой и выводить изображение на канву А то что ему каждую карту чтоли резать придёца в редакторе перед помещение на телефон... |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Режешь не J2ME, а в J2SE или на любом другом языке, в котором есть библиотеки для работы с gif и png.
А как писать такую программу нужно спрашивать в форуме по соответвующему языку. Это сообщение отредактировал(а) math64 - 28.2.2008, 11:21 |
|||
|
||||
| nangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
eugine_s, Если можно подробнее как именно это сделать..
вот я нарезал 9 квадратов 1 2 3 4 5 6 8 7 9 как программно осуществить переход по картинкам. если есть кодик, то скинь плиз.. |
|||
|
||||
| Brodyaga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Вот я и говорю, что ему придёца перед тем как помещать карту в телефон, разрезать её отдельно. И так с каждой картой... А это не есть хорошо! Лучше разобраца с форматом GIF и научица доставать из него любой кусочек.
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Это не реально, там LZW сжатие, пока прошлые строки пикселей не прочтёшь, текущую не восстановить (словарь). Идея порезать всё на очень малые тайлы самая простая и практичная. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Резать нужно на 25 квадратов (если у тебя экран 240x320) или больше (если экран меньше).
Добавлено через 5 минут и 44 секунды Brodyaga, как раз то что ты предлагаешь - ненормально. Нормально: делается шаблонное J2ME приложение с тестовой картой и пишется программа, которая режет реальную карту и подменяет ею тестовую в шаблонном приложении. |
|||
|
||||
| eugine_s |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
nangel, квадратов всего не обязательно будет 9 штук (хотя если всего 9 штук, то смысла нет в таком методе). Квадратов может быть на много больше - N (например N = 100). Эти все квадраты ты получаешь из большой карты на компьютере, разрезав ее на маленькие квадраты (про размер этих квадратов уже писалось) и сохранив их в формате png (про gif тоже уже писали - не все телефоны его поддерживают)
Из этих N квадратов, тебе нужно выбрать один квадрат - центральный и 8 его "соседей".... а уже нарисовать картинку на экране - это не сложно, math64 привел вариант как это можно сделать. |
|||
|
||||
| nangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Спасибо всем, может кто знает спец прогу для нарезки картинки на куски???
|
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |