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

Класс Gauge




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

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

publicGauge(String label, boolean interactive,  int maxValue, int initialValue)



Рис 6.9. Эмуляторы телефонов, показывающие использование класса Gauge


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

  •  label - метка или название процесса связанного с объектом Gauge;
  •  interactive - имеются два значения: true для интерактивного режима и false — для не интерактивного режима;
  •  maxValue - максимальное значение, задающее диапазон длительности всего процесса. Может быть установлено при помощи значения INDEFINITE;
  •  static int INDEFINITE - специальное значение, устанавливающее максимальную величину при неизвестном диапазоне течения всего процесса;
  •  initialValue - параметр может быть инициализирован значением от нуля и до значения в параметре maxValue. Этим значением инициализируется начальный отсчет, от которого происходит увеличение визуального представления работы процесса. Кроме числовых значений возможно применение заданных констант:
  •  static int CONTINUOUS_IDLE - задает непрерывное циклическое течение процесса для не интерактивного режима при неопределенном диапазоне;
  •  static int CONTINUOUS_RUNNING -задает непрерывное бегущее течение процесса для не интерактивного режима при неопределенном диапазоне;
  •  static int INCREMENTAL_IDLE- задает пошаговое циклическое течение процесса для не интерактивного режима при неопределенном диапазоне; .
  •  static int INCREMENTAL_UPDATING - задает пошаговое обновление течения процесса для не интерактивного режима при неопределенном диапазоне.


Методы класса Gauge

Методы, имеющиеся в составе класса Gauge, позволяют настраивать графическое отображение течение процесса на экране телефона, рассмотрим некоторые из методов.

  •  void addCommand (Command cmd) — добавляет команду;
  •  int getMaxValue () — получает значение максимального диапазона работы процесса;
  •  int getValue ()-получает текущее значение в процессе работы;
  •  void setltemCommandListener (ItemCommandListener 1) -устанавливает обработчик событий;
  •  void setLabel (String label) - устанавливает метку для элемента;
  •  void setLayout (int layout) - устанавливает директивы для элемента;
  •  void setMaxValue (int maxValue) - устанавливает максимальное значение течения процесса;
  •  void setPreferredSize(int width, int height) -задает ширину и высоту для графического представления всего течения процесса;
  •  void setValue(int value) - устанавливает текущее значение процесса.


В примере создается простой измеритель течения процесса в виде прямоугольника, максимальный диапазон задан значением десять. В листинге 6.7 показано использование класса Gauge.

/ * * Листинг 6.7 Класс Gauge */import javax.microedition.midlet.*;  import javax.microedition.Icdui.*; public class MainClassGauge extends MIDlet implements CommandListener { // команда выхода из приложения private Command exitMidlet = new Command!"Выход", Command.EXIT, 1); // объект класса Form private Form myform = new Form("Класс Gauge"); // объект mydisplay представляет экран телефона private Display mydisplay; public MainClassGauge() { mydisplay = Display.getDisplay(this) ; } public void startApp() { // добавить объект класса Gauge myform.append(new Gauge("Прогресс:", true, 10, 5 )); // установка обработчика событий для Form myform.addCommand(exitMidlet); myform.setCommandListener(this); // отразить текущий дисплей mydisplay.setCurrent(myform); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable d) { // выход из приложения if (с = = exitMidlet) { destroyApp(false); notifyDestroyed(); }  } }

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



Содержание раздела