Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Текстовое приложение на J2ME


Автор: EtherLord 14.9.2005, 10:19
Я в данный момент пишу прогу на J2ME. Мне нужно отображать текст в как можно более мелком виде. Я написал прогу и задал самый маленький шрифт. На эмуляторе шрифт действительно маленький, а вот на моей моторолке он как и обычно среднего размера.
Помогите plz. Заранее благодарен.

Автор: Dancer 14.9.2005, 10:55
никак это ты не сделаешь, шрифт в ней поддерживается лишь как Font.FACE_SYSTEM (какой бы шрифт ты не указывал)
либо пишешь класс, который тебе будет сам рисовать буковки, более никак smile

Автор: EtherLord 14.9.2005, 10:57
В BookReader'ах буковки рисуются что-ли?

Автор: Dancer 14.9.2005, 11:03
про BookReader ничего не знаю, поэтому сказать не могу. Но вот если ты программил графику под DOS например, и пытался реализовывать свои какие нибудь шрифты, то в принципе должне знать, как по пикселам представляется буква на экране.
Пусть у тебя для одной буквы будет строго отведено количество символов по высоте и ширинет. В этом прямоугольничке точечками рисуешь букву. В принципе не так сложно, но достаточно муторно. (зато очень интересно! smile )
далее в своём классе сделаешь константу для межстрочного и межбуквенного расстояния. После всего этого на Canvas выводишь свои созданные буковки

Автор: EtherLord 14.9.2005, 11:07
Да я думал уже о том как все это сделать и как буковки рисовать тоже знаю и продумал, но оставалась надежда на стандартные ср-ва. smile
Все равно спасибо smile

Автор: javastic 14.9.2005, 11:13
Перепроверь какой профайл 1.0 или 2.0 используется в твоём эмуляторе, возможны различия с реальным устройством.

В MIDP 1.0 шрифт устанавливается при помощи класса Graphics и метода setFont(), в MIDP 2.0
просто используется метод setFont(), например:

Код

Font smallFont = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_SMALL);
list.setFont(0, smallFont);  //list это объект класса List

Автор: EtherLord 14.9.2005, 11:17
Проверю спасибо. smile

Автор: Dancer 14.9.2005, 11:22
в C380 все Font.FACE идут как SYSTEM. поэтому тип кроме как SYSTEM выбрать будет нельзя. ну, а то что SIZE_SMALL ставить, я так понял, что автор уже делал. (или я не догнал чего-то)

Автор: javastic 14.9.2005, 11:25
Да и ещё, Dancer прав, что не все телефоны поддерживают заданный вид шрифта, возможно это относится к стилю и размеру. У тебя точно в качестве эмулятора телефон Motorola C380 или что-то другое?

Кстати, был тут на днях на конференции Sun'a, задавали вопрос о том, надо ли для каждой платформы (Nokia, Motorola, SonyEricsson И т.д.) перекомпилировать проект или нет? Специалист сана сказал что надо, т.к. Яву машину они затачивают под железки конкретного производителя, а архитектура на уровне железа у всех разная, посему написаный мидлет к примеру под Сименс сможет возможно без проблем запускаться и работать на Нокии, но он не будет оптимизирован к этому железа, посему приложение может "тормозить" или сжирать много памяти, ну или какие другие глюки которые в принципе могут не вызывать ошибок исполнения, но работать будут не оптимально.
Скоро выложу этот интересный материал, а именно "Производительность Java-машины".

Автор: EtherLord 14.9.2005, 11:26
Всё правильно SIZE_SMALL я уже пробовал, по этому поводу и написал, что не маленький он на моем телефоне.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)