Вниз  JECP
- 7.02.2014 / 22:13
Naik
  Пользователь

Naik 
Сейчас: Offline
aNNiMON, Почему не знаем? Пишем для j2se? Ложим либу j2se с классом Image. По моему логично, что одна из либ кроме основной должна присутствовать.
- 7.02.2014 / 22:21
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Naik, это если делать по-твоему.

В общем у меня получилось.
Создаём интерфейсы ImageInterface, ImageInitializer и класс, который будет хранить один экземпляр инициализатора и статические методы инициализации.
  1. public interface ImageInterface {
  2.  
  3.     public int getWidth();
  4.  
  5.     public int getHeight();
  6. }
  7.  
  8. public interface ImageInitializer {
  9.  
  10.     public ImageInterface init(String res) throws IOException;
  11.  
  12.     public ImageInterface init(InputStream is) throws IOException;
  13. }
  14.  
  15. public class JecpImage {
  16.  
  17.     public static ImageInitializer imageInitializer;
  18.  
  19.     public static ImageInterface createImage(String res) throws IOException {
  20.         return imageInitializer.init(res);
  21.     }
  22.  
  23.     public static ImageInterface createImage(InputStream is) throws IOException {
  24.         return imageInitializer.init(is);
  25.     }
  26. }

В бэкэнде создаём класс, реализующий интерфейс ImageInitializer:
  1. public class JecpImageInitializer implements ImageInitializer {
  2.  
  3.     @Override
  4.     public ImageInterface init(String res) throws IOException {
  5.         return new ImageSE(res);
  6.     }
  7.  
  8.     @Override
  9.     public ImageInterface init(InputStream is) throws IOException {
  10.         return new ImageSE(is);
  11.     }
  12.  
  13. }
Вот это new - то, чего мне не хватало, чтобы были разные ссылки на объекты.

А также указываем, какой инициализатор картинок мы хотим использовать:
JecpImage.imageInitializer = new JecpImageInitializer();

Теперь при вызове JecpImage.createImage будет вызываться JecpImageInitializer, который создаст нам новый объект уже конкретной картинки.
__________________
 let live
- 7.02.2014 / 22:40
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Даже проще! Делаем JecpImage абстрактным и ImageInterface нам уже не нужен!
Фух, наконец-то!
Заливаю на git.
__________________
 let live

Изменено aNNiMON (7.02 / 22:40) (всего 1 раз)


Прикрепленные файлы:
2014-07-02_21-3(…).jpg (24.72 кб.) Скачано 217 раз
- 7.02.2014 / 22:55
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Во втором посте обновлены библиотеки.

Changelog
  - Добавлен метод рисования полигонов.
  - Добавлена работа с изображениями.

Демки
  - Добавлен экран с крутящимися полигонами.
  - В демо управления квадратом вместо квадрата теперь изображение.
__________________
 let live
- 8.02.2014 / 14:50
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Changelog
  - Добавил метод для закрытия приложения: Jecp.exitApp()
  - Добавлено автоматическое определение кнопок джойстика в Java ME
  - Добавлен класс Fps с функциями подсчёта и ограничения fps.

Demo
  - Выход из приложения по нажатию ESCAPE или кнопки назад
  - В первый экран демки с линиями добавлен подсчёт и ограничитель Fps, а также показывается код нажатой клавиши.

Просьба к тем, у кого Android с qwerty-клавой, проверить (если не совпадают, то назвать) коды клавиш:
Открыть спойлер

__________________
 let live


Прикрепленные файлы:
DemoJecpAndroid(…).apk (104.59 кб.) Скачано 206 раз
JecpDemo_ME.jar (47.74 кб.) Скачано 128 раз
DemoJecpSE.zip (85.08 кб.) Скачано 82 раза
- 8.02.2014 / 17:28
dzanis
  Пользователь

dzanis 
Сейчас: Online
aNNiMON, я за то чтоб префикс Jecp в пакет убрать.
- 8.02.2014 / 18:18
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
dzanis, а чем мешает?
__________________
 let live
- 8.02.2014 / 18:37
dzanis
  Пользователь

dzanis 
Сейчас: Online
  1. import com.annimon.jecp.me.Application;
  2. public class Demo extends Application {
  3.  
  4.     public Demo() {
  5.         super(new Main());
  6.     }
  7. }
Вот так чем плохо?Уже есть jecp в пакете,зачем префикс?
- 8.02.2014 / 18:41
dzanis
  Пользователь

dzanis 
Сейчас: Online
Это тоже самое если бы вот с таким всем известным пакетом
  1. javax.microedition.lcdui.Image;
было бы так -
  1. javax.microedition.lcdui.lcduiImage;
писали бы
  1. img = lcduiImage.createlcduiImage
   :-D

Изменено dzanis (8.02 / 18:43) (всего 1 раз)
- 8.02.2014 / 19:10
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
dzanis, наверное, дело в однозначности. Меня иногда бесит при импорте выбирать какой именно класс нужен.
В Android уже есть класс Application.
В Java ME есть класс Image.
Graphics тоже везде присутствует.
__________________
 let live
Наверх  Всего сообщений: 140
Фильтровать сообщения
Поиск по теме
Файлы топика (11)