Select your language:

Home Главная | Registration Регистрация | Login Вход

Menu Меню сайта
Statistics Статистика

Total online: Онлайн всего: 1
Guests: Гостей: 1
Members: Пользователей: 0
Study entry Форма входа
Логин:
Пароль:
Забыл пароль | Регистрация

Ссылки:

private List mylistlm; private Display mydisplay;

Создаются три объекта класса List, представляющие три имеющихся типа элементов списка и обвект mydisplay класса Dispiky. Метод startApp() производит загрузку всех имеющихся иконок из папки \Code\Listing6_9\res с помощью метода createlmage класса Image. Все загруженные иконки содержатся непеременных, imagel, image2, imaged и image4. При загрузке изображений используется конструкция try{> catch () {} для перехвата исключительной ситуации. Все иконки размещаются в массивах iconEx, iconMu и з.соп1тдля каждого типа элементов списка. В сроке кода

mylistEx = new List ( "Тип EXCLUSIVE", Choice. EXCLUSIVE, st,

iconEx)

происходит инициализация объекта mylistEx. Используется конструктор класса из четырех параметров. Первый параметр конструктора класса List создает заголовок для всего экрана. Во втором параметре конструктора используется значение Choice.EXCLUSIVE. С помощью этого значения создается список элементов типа Exclusive, позволяющий выбрать только один элемент из всего списка. Третий параметр в конструкторе класса List принимает значение переменной st. Эта переменная содержит две строки текста, создавая тем самым только два элемента списка. Последний параметр загружает две иконки для обоих элементов списка.

В методе commandAction () происходит обработка всех имеющихся команд созданных в приложении. Команда exitMidlet производит выход из приложения. Команда vozvrat возвращает пользователя в глав-■ ное окно программы. Команда О К показывает информационное сообщение, выполненное на основе класса Ale rt. Команда vibor осуществляет переход в выбранный экран представленный списком элементов двух различных типов Multiple и Implicit класса List. С помощью метода getSelectedIndex() берется индекс выбранного элемента из списка и на его основе в конструкции if/else происходит обработка выбранных событий. Два типа списков Multiple и Implicit создаются подобно списку типа Exclusive. Рис. 6.11 изображает эмулятор, на экране которого воспроизводится список элементов организованный с помощью класса Li st.

В мобильных приложениях очень часто используются различные списки элементов, поэтому необходимо изучить возможности класса List более внимательно.

Рис. 6.11. Список элементов созданный классом List

6.5. Класс Ticker

Объект класса Ticker служит для создания в приложении подобие бегущей строки, располагающейся в верхней части экрана. Текст, выводимый на экран объектом класса Ticker, перемещается справа налево с одинаковой скоростью. При достижении конца текста бегущая строка появляется заново, обеспечивая тем самым цикличность перемещения текста. На рис. 6.12 изображен эмулятор с бегущей строкой в верхней части экрана.

Класс Ticker имеет один конструктор, необходимый в создании объекта ' этого класса, рассмотрим этот конструктор:

public Ticker (String Str) ;

Параметры конструктора класса Ticker:

□ str - строка текста появляющаяся в виде бегущей строки.

Создавая объекта класса Ticker с помощью рассмотренного конструктора, вы задаете значение для параметра str и эта строка текста будет циклично прокручиваться в программе.

6.5.1. Методы класса Ticker

В составе класса Ticker существует всего два метода для получения и установки необходимой строки текста для приложения.

О String getstringO - получает строку текста, заданную для объекта класса Ticker;

О void setString (String str) — устанавливает строку текста для отображения ее на экране телефона с помощью объекта класса Ticker, заменяя ее новой строкой.

Также имеется возможность воспользоваться еще двумя методами абстрактного класса Displayable. Оба метода выполняют аналогичные действия методам класса Ticker, но при этом позБоляютБстраиватъ объектKnaccaTicker непосредственно в форму, то есть экран представленный классом Form. Разберем эти два метода:

□ void setTicker (Ticker ticker) - устанавливает

новую бегущую строку, заменяя предыдущую;

□ Ticker getTicker .) - получает используемую строку текста.

Оба этих метода дублируют по сути методы класса Ticker. В листинге 6.10 приводиться образец применения класса Ticker, также весь исходный код находится на компакт-диске в папке \Code\Listing6_10\src.

Рис. 6,12. Объект класса Ticker создает в верхней части экрана бегущую строку

6.6. Класс Image

При рассмотрении класса Image Item мы уже использовали объекты класса Image, но тогда был рассмотрен только один метод и способ работы с классом Image. В этом разделе вы более подробно познакомитесь с этим классом. Класс Image необходим для загрузки и хранения изображений в формате PNG. Чаще всего загружаемые изображения находятся в рабочем каталоге приложения. Но могут находиться и где угодно, надо только правильно указать путь местонахождения для загрузки. При упаковке приложения в JAR-файл, все имеющиеся изображения автоматически копируются в архив, и при работе программы на телефоне, загрузка уже осуществляется из JAR-файла. Загружаемые изображения могут использоваться во время работы с классами Alert, Choice, ChoiceGroup,

\ u w 111 TmanDTfomu ( ! г■ I n 11 ii'i тгчцргтел г: и 'п ттп.чч ■[!(■ iiihi ij'jnfinqwuTja 11 ■ I □Ln n _

I \ I 111^ -1- 1111.1 V_J 4^ -i- i— У_. 111 I 1 4 'I 11 | I 1 1 \- . I . 1U1 JVVXi/V • I '\-^ l^t- I I I 111 II " 4 ' 1 | . 1.111 \_ I 1 I 1/1 11.1 *J I \ J ' tJ

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

6.6.1. Методы класса Image

Все методы класса Image служат для загрузки изображений из файлов, ресурсов, потоков, а в некоторых методах можно задавать размеры и трансформацию изображений. Проанализируем основные методы класса Image.

G static Image createlmage(byte ["] imageData, int imageOff-set, int image Length) —загружает изображение учитывая смещение идлину в байтах; *

□ static Image createlmage (Image source) -загружаетизображение из файла;

□ static Image createlmage (Image image, int x, int y, int width, int height, int transform) - загружает изображение в заданное место, определенное координатами, с возможностью трансформации изображения Параметр transform устанавливает необходимую трансформацию с помощью класса Spriten константных значений:

'В листинге 6.10 создается пустая форма с помощью класса Form и объект класса Ticker с заданным текстом. Методом setTickerO, объект класса Ticker добавляется в форму, организовывая тем самым бегущую строку в верхней части экрана телефона.

□ Sprite.TRANS_NONE - изображение копируется без трансформации;

□ Sprite.TRANS_R0T90 - трансформирует изображение по часовой стрелке на 90";

□ Sprite. TRANS_ROT180— трансформирует изображение по часовой стрелке на 180";

□ Sprite.TRANS_ROT270 - трансформирует изображение по часовой стрелке на 270";

□ static Image createlmage (InputStream stream) - загружает изображение из потока; ,

□ static Image createlmage(int width, int height) -загружает изображение в заданные размеры;

□ static Image createlmage (String name) -загружаетизображение из ресурса;

□ static Image createRGBImage (int [ ] rgb, int width, int height, boolean processAlpha) - загружает изображение, учитывая цветовую компоненту ARGB;

□ Graphics getGraphics () —создает графический объект для представления изображения;

О int getHeight () - получает высоту изображения;

□ int getwidth () - получает ширину изображения,

В листинге 6.11 происходит загрузка изображения в приложение, но без использования объекта класса Image Item, который использовался при рассмотрении примера в листинге 6.6 из раздела 6.8. В листинге 6.6 применялась ссылка на объект класса Image, в этом примере объект класса Image используется напрямую. Исходный код примера можно найти на компакт-диске в папке \Со de\Listing6_ll\sr с.

у**

Листинг 6.11 Класс Image

*/

import javax.microedition.midlet.* ; import javax.microedition. lcdui . * ,-

public class MainClassImage extends MIDlet implements CommandListener

{

/ / команда выхода из приложения

private Command exitMidlet = new Command("Выход", Command.EXIT, 1) ;

// объект класса Form

private Form myform = new Form ("Класс Image") r

II объект mydisplay представляет экран телефона

Нарис. 6.1 Зпоказанэмулятортелефона, воссоздающий загруженноеизобра-жение, посмотрите, насколько больше экран телефона и как разместилось меньшее поразмеру изображение надисплее.

6.7. Класс Font

Приформированииприложенияпрограммистувсегдахочетсяулучшитьего внешний вид и кроме обилия компонентов, создающих списки, таблицы, бегу-

Рисб. 13. Загрузка изображения классом image

щие строки, еще имеется класс Font, с помощью которого можно задавать шрифт для текста. Телефоны имеют ограниченные системные ресурсы, поэтому доступно всего несколько шрифтов, которые отличаются по размеру, начертанию, стилю и задаются при помощи констант.

Размер шрифта устанавливается при помощи трех констант: , □ int SIZELARGE - большой шрифт;

О static int SIZE_MEDIUM - средний шрифт;

□ static int SIZE_SMALL — маленький шрифт.

Стиль можно задавать четырьмя константами:

□ static int STYLE_BOLD - жирный шрифт;

□ static int STYLE_ITALIC - курсив;

.□ static int STYLE_PLAIN - обычный шрифт;

' □ static int STYLEUNDERLINED -подчеркнутый шрифт. '

Начертание шрифта определяется тремя константами:

□ static int FACEMONOSPACE - шрифт с небольшим интервалом;

□ static int FACE_PROPORTIONAL - пропорциональный шрифт;

□ static int FACESYSTEM - системный шрифт.

В профиле MIDP 1.0 возможность установки различных шрифтов в приложении имелась только при использовании класса Graphics и метода setFont ().В профиле MIDP 2.0, уже имеется возможность установки шрифта, без использования класса Graphics, только при помощи методов из состава классов пользовательского интерфейса. Процесс назначения шрифта текста' в программе происходит следующим образом. Вначале создается переменная, ко-

торая будет содержать размер, стиль и начертание шрифта, установленные при помощи метода get Font () класса Font например:

Font myFont = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD, Font.SIZE_LARGE)г

Переменная myFont теперь содержит шрифт, который можно назначит любому тексту в программе. В профиле MIDP 2.0 для этого достаточно вызвать метод setFont () с необходимыми параметрами. В профиле MIDP 1.0 для назначения шрифта тексту, необходимо использовать класс Graphics, в главе 6 рассматривается эта возможность.

В примере к этому разделу будет задействован класс List, создающий список элементов. При создании на экране списка из четырех элементов, каждому элементу будет назначен свой шрифт. В листинге 6.12 содержится код примера создающего различные шрифты элементам списка. Весь исходный код так же содержится на компакт-диске в папке \Code\Listing6_12\src.

Основным классом в программе из листинга 6.13, иллюстрирующей работу со шрифтом, является класс MainClassFont. Весь код программы построен на использовании класса List создающем список элементов. В строке кода:

Image [] icon = null

создается переменная для хранения массива изображений. Конкретно в этом примере будут использованы маленькие иконки, загружаемые каждому элементу списка. Всю группу элементов представляетобъекттуИзЬ класса List. В методе startApp () происходят основные действия по созданию списка элементов, загрузке изображения и назначению шрифта каждом элементу списка. В четырех строках кода:

Image imageO = Image.createlmage("/iconO.png") ; Image imagel = image.createlmageC/iconl.png") ; Image image2 = Image.createImage("/icon2.png");

Image image3 = Image.createlmageC/iconS .png") ;

загружаются четыре различные иконки в виде шариков, окрашенных в синий, красный, зеленый и оранжевый цвет. Все они помещаются в массив:

icon = new Image []{ imageO, imagel, image2, image3};

Далее в программном коде создается массив строковых значений:

String[] stroka = {"Синий",'Красный","Зеленый"г"Оранжевый"}.

Теперь пришло время создать шрифты:

Font fO = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL);

Font fl = Font .getFont (Font. FACE_SYSTEM, Font. STYLE_BOLD,

Font.SIZE_MEDIUM) ; Font f2 = Font-getFont(Font.FACE_MONOSPACE,

Font.STYLE_ITALIC,Font.SIZE_LARGE>; . Font f3 = Font.getFont(Font. FACE_SYSTEMr

Font.STYLE_UNDERLINED, Font.£IZE_LARGE); В этих строках создаются четыре переменные fO ,..f3, содержащие различные по стилю, размеру и начертанию шрифты. С помощью созданных переменных



Для перехода к следующей странице статьи перейдите по вы подающему меню
Basket Корзина
Your basket is empty Ваша корзина пуста
'); $(el).append(g); $(g).show(); } _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}}); return false; } function removeBasket(id){ if(lock_buttons) return false; else lock_buttons = 1; $('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title',''); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}}); return false; } function add2Basket(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled'); $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}}); return false; } function buyNow(id,pref){ if(lock_buttons) return false; else lock_buttons = 1; var opt = new Array(); $('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled'); $('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title',''); $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+'-'+this.value);}); _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}}); return false; } //-->
Search Поиск
Calendar Календарь
«  March Март 2011  »
Mon Пн Tues Вт Wed Ср Thurs Чт Fri Пт Sat Сб Sun Вс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archive records Архив записей

Ссылки:

Rambler's Top100 Все для дома - Бытовая техника, опубликовать информацию о фирме
QLE 88x31

раскрутка сайта в интернете Рейтинг сайтов Товары / Услуги

Copyright MyCorp © 2011 Создать сайт бесплатно

Copyright MyCorp © 2011