Последние новости

Новые статьи

Дизайн API библиотеки

Совершенный код  api, library

На написание данной статьи меня натолкнула библиотека EasyCamera, которая упрощает сложный вызов Android Camera API (статья о ней).
Часто приходится сталкиваться с тем, что для работы той или иной библиотеки необходимо прочитать документацию или поискать подробные примеры её использования. Например, чтобы заставить ту же Android Camera API показать экран видоискателя, нужно вызвать сначала метод setPreviewDisplay(holder), а затем уже startPreview(). Это не всегда очевидно и не очень удобно.
Поэтому при проектировании библиотеки следует учитывать некоторые параметры, а именно:
1. Классы и методы должны быть понятны пользователю (в данном случае пользователем
Продолжить

Рейтинг:  4  (За: 5 | Против: 1)
Добавлено: 6.04.2014 от aNNiMON

Комментарии (16)

План для создания программ для андроид

Android

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

Рейтинг:  2  (За: 8 | Против: 6)
Добавлено: 27.03.2014 от samodelkin

Комментарии (7)

Быстрое создание 2D ландшафта

GameDev  java

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

Но есть и более простой и быстрый способ генерирования 2D ландшафта.
Создаём массив размером с ширину игровой области.
int[] blockHeights = new int[width];
Определяем максимальную высоту, чтобы земля не вышла за пределы экрана.
int maxHeight = height / 2;
Рассчитываем
Продолжить

Рейтинг:  11  (За: 11 | Против: 0)
Добавлено: 15.03.2014 от aNNiMON

Комментарии (11)

ООП в примерах. Часть 4. Интерфейсы, повторное использование

Совершенный код  ооп, java me, java

Продолжим наше изучение ООП. Давайте создадим сущность Меню и обернём её вокруг наших пунктов, то есть перенесём всё, что касается меню в отдельный класс Menu.
Позиция курсора (int cursor), массив с пунктами меню (MenuItem[] items), отрисовка, обработка клавиш теперь будет в классе Menu. Menu.java
Вместо массива я добавил Vector, чтобы можно было динамически добавлять элементы.

Теперь класс Canvas будет ещё проще:
  1. public class OopMenu5 extends Canvas {
  2.  
  3.     private final int width, height;
  4.     private Menu menu;
  5.  
  6.     public OopMenu5() {
  7.         setFullScreenMode(true);
  8.         width = getWidth();
  9.         height = getHeight();
  10.  
  11.         menu = new Menu();
  12.         menu.addMenuItem("Start", "start.png");

Продолжить

Рейтинг:  6  (За: 7 | Против: 1)
Добавлено: 7.02.2014 от aNNiMON

Комментарии (24)

ООП в примерах. Часть 3. Переопределение методов, уровни абстракции

Совершенный код  ооп, java me, java

Пункт меню должен рисоваться на экране. Так почему бы нам не добавить метод отрисовки сразу в класс MenuItem и в его классы-потомки? Передадим этому методу все нужные нам параметры и будем рисовать.
  1. public class MenuItem {
  2.  
  3.     protected static final Font ITEM_FONT = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
  4.     protected static final int ITEM_HEIGHT = ITEM_FONT.getHeight() + 5;
  5.  
  6.     protected String name;
  7.  
  8.     public MenuItem(String name) {
  9.         this.name = name;
  10.     }
  11.  
  12.     public String getName() {
  13.         return name;
  14.     }
  15.  
  16.     public void paint(Graphics g, int startY, int itemIndex) {
  17.         g.setFont(ITEM_FONT);
  18.         g.setColor(0xFF095E15);
  19.         g.drawString(name, g.getClipWidth() / 2, startY + ITEM_HEIGHT

Продолжить

Рейтинг:  8  (За: 9 | Против: 1)
Добавлено: 6.02.2014 от aNNiMON

Комментарии (23)
<< 1 ... 42 43 44 45 46 47 >>

Мы в соцсетях

tw tg yt gt