Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    6.7. Класс Font



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



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


    Размер шрифта устанавливается при помощи трех констант:

    •  int SIZE_LARGE - большой шрифт;
    •  static int SIZE_MEDIUM - средний шрифт;
    •  static int SIZE_SMALL — маленький шрифт.


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

    •  static int STYLE_BOLD - жирный шрифт;
    •  static int STYLE_ITALIC - курсив;
    •  static int STYLE_PLAIN - обычный шрифт;
    •  static int STYLE_UNDERLINED-подчеркнутый шрифт.


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

    •  static int FACE_MONOSPACE - шрифт с небольшим интервалом;
    •  static int FACE_PROPORTIONAL - пропорциональный шрифт;
    •  static int FACE_SYSTEM - системный шрифт.


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

    Font myFont = Font.getFont(Font.FACE_SYSTEM,
    
    Font.STYLE_BQLD, Font. SI ZE_LARGE) ;


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

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

    /**
    
    Листинг   6.12
    
    Класс  Font
    
    */
    
     import   javax.microedition.midlet. *;
    
    import* javax.microedition.Icdui.*;
    
    public  class   
    
     MainClassFont  extends MIDlet  implements
    CommandListener
    
    {
    
    // команда выхода из приложения
    
    private Command exitMidlet = new Command("Выход",
    Command.EXIT, 0);
    
    // массив иконок
    
    Image[] icon = null; x
    
    // объект класса List
    
    private List mylist;
    
    // объект mydisplay представляет экран телефона
    
    private Display mydisplay;
    
    public MainClassFont()
    
    {
    
    mydisplay = Display.getDisplay(this);
    
    }
    
    public void startApp()
    
    {
    
    // перехватываем исключительную ситуацию
    
    try{
    
    // загрузка изображения
    
    Image imaged = Image.createlmage("/icon0.png");
    
    Image imagel = Image.createlmage("/icon1.png");
    
    Image image2 = Image.createlmage("/icon2.png");
    
    Image image3 = Image.createlmage("/icon3.png");
    
    // поместить загруженные изображения в массив icon
    
    icon = new Image[]{ image0, image1, image2, image3};
    
    }
    
    catch(Java.io.IOException ex){ }
    
    // текст для четырех элементов списка
    
    String[] stroka = {"Синий","Красный","Зеленый",
    
    "Оранжевый"};
    
    // назначается шрифт нулевому элементу списка
    
    Font f0 = Font.getFont(Font.FACE_PROP6RTIONAL,
    
    Font.STYLE_PLAIN, Font.SIZE_SMALL);
    
    // назначается шрифт первому элементу списка
    
    Font f1 = 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_SYSTEM,
    
    Font.STYLEJJNDERLINED, Font.SIZE_LARGE);
    
    // инициализация объекта mylist
    
    mylist = new List("Класс List", 
    
    Choice.EXCLUSIVE,
    
    stroka, icon);
    
    // устанавливается шрифт нулевому элементу списка
    
    mylist. setFont (0 , f0), ;
    
    // устанавливается шрифт первому элементу списка
    
    mylist.setFont(I,f1);
    
    // устанавливается шрифт второму элементу списка
    
    mylist .setFont.(2 , f 2) ;
    
    //устанавливается шрифт третьему элементу списка 
    
    mylist.setFont(3,f3);
    
    // добавить команду выхода
    
    mylist.addCommand(exitMidlet);
    
    mylist.setCommandListener(this);
    
     // отразить текущий дисплей
    
    mydisplay.setCurrent(mylist);
    
    }
    
    public void pauseApp() {}
    
    public void destroyApp(boolean unconditional) {}
    
    public void commandAction(Command c, Displayable d)
    
    {
    // выход из приложения
    
    if(с == exitMidlet)
    
    {
    destroyАрр(false);
    
    notifyDestroyed() ;
    
    }
    
    }
    
    }


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

    Image[]  icon =  null
    


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

    Image imaged = Image.createlmage("/icond.png");
    
    Image imagel = Image.createlmage("/iconl.png");
    
    Image image2 = Image.createlmage("/icon2.png");
    
    Image image3 = Image.createlmage("/iconS.png");
    


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

    icon = new Image[]{imaged, image1, image2, image3};
    


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

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


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

    Font  f0 = Font.getFontfFont.FACE_PROPORTIONAL,
    
    Font.STYLE_PLAIN, Font.SIZE_SMALL);
    
    Font f1 = 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_SYSTEM,
    
    Font.STYLE_UNDERLINED,Font.SIZE_LARGE);
    


    В этих строках создаются четыре переменные f 0...f 3, содержащие различные по стилю, размеру и начертанию шрифты. С помощью созданных переменных впоследствии будет производиться установка шрифтов для каждого элемента списка. Список элементов представлен объектом mylist и выполнен по типу Exclusive (четыре элемента со своими иконками). В классе List имеется метод setFont () доступный в профиле MIDP 2.0, он и используется в примере.

    Создав объект класса List, установим шрифт всем элементам списка:

    mylist.setFont(0,f0);
    
    mylist.setFont(1,f1);
    
    mylist.setFont(2,f2);
    
    mylist.setFont(3,f3);
    


    С помощью метода setFont () происходит установка заданного шрифта, содержащегося в переменных f 0... f 3. Назначение шрифта происходит по индексам от 0 до 3 в массиве stroka [ ].

    В конце кода происходит добавление команды выхода и отображение текущего экрана на дисплее телефона. На рис. 6.14 представлена работа программы из листинга 6.13.



    Рис 6.14. Эмулятор телефона, на экране которого представлены разные шрифты


    К сожалению, ресурсы мобильных телефонов не позволяют воспользоваться обилием шрифтов компьютерной платформы, но и имеющейся базы вполне достаточно цля создания разнообразных текстовых элементов. Использование шрифтов & программах значительно улучшает пользовательский интерфейс и придает приложению более изящный вид. В следующей главе будет рассматриваться программирование графики в Java 2 ME, с помощью классов низкоуровневого интерфейса.

     
    -
    



    Copyright © vzlom-1.ru 2020-2021