Pull to refresh

Splash Screen на J2ME

Developmend for Java ME *
Sandbox
Здравствуй %хабраюзер%!

Дисклеймер:


Сразу хочу сказать что эта статья рассчитана на новичков а не на продвинутых гуру.

J2ME умерла... А вот и нет!

Информационные технологии стремительно развиваются, с приходом в нашу жизнь смартфонов, КПК и прочих новшеств — люди начали быстро забывать про телефоны, разработка программ на J2ME притихла. С слезами на глазах, до последнего вздоха, хочется верить что это не так. И кажется. уже завтра, ты увидишь новую статистику — статистику где java 2 micro edition не уступает никому, и даже наоборот — превосходит цифрами. Увы, наверное это всего лишь мечты.

Вспоминается то время, когда слово «j2me» было у всех на устах, а форумы гнулись от вопросов и идей, связных с j2me. Это была и есть воистину мощная технология! Такой она для меня и останется.

Выше и выше поднимаются статистики продаж device'ов с установленной OS. Статистики — это хорошо, но можно ли им доверять на все 100%? Я например не могу, потому что каждый день вижу много трубок, в людей которые могут запросто позволить себе купить дорогой Android или продукцию от Apple. Но теме не менее пользуются обычными телефонами, Samsung, Sony Ericsson, Nokia.
А на вопрос:
— «Почему Вы не купите новинку?»
Отвечают с гордостью:
— «Меня и тут все устраивает».

Однако принцип «Только для звонков» в моем случае не работает. Часто замечаю как знакомые в полную силу используют функционал простого телефона. Когда надо быстренько пополнить счёт мобильного себе или родным — не раз видел что делали это при помощи WM Keeper Mobile. Также записывают встречи, важные даты, органайзер работает как надо. Читают новости в родном RSS Reader'e, Отправляют электронную почту и даже пишут в свой Blogger-блог. И это действительно так!

После таких слов хочется включить классическую музыку, открыть любимый NetBeans и программировать, программировать и ещё раз программировать. Чем кстати мы сейчас и займемся. А напишем мы Splash Screen, подробней под катом…


Я надеюсь что все необходимые инструменты уже подготовлены к работе? Тогда приступаем!

SplashScreen Обычно первое что видит пользователь на экране (в нашем случае мобильного телефона). Это изображение которое появляется во время загрузки программы/игры. Обычно логотип или просто картинка с информацией. Но не всегда это изображения, бывает что это просто текст, или splash screen вообще отсутствует. Некоторые J2ME программисты утверждают, что если в приложении нет такой «заставки» — это уже на 25% провальный проект.

Примечание: Над первым запуском уже надо серьезно задуматься. Что бы Вы там не разместили — это Ваш выбор. Но следует помнить что от этого может зависеть продолжит ли %юзернейм% работу с продуктом или нет. Также существует мнение. что если пользователь в восторге от первого запуска — то даже если внутри немного подкачает UI он все равно вернется к этому приложению. Удерживать пользователя надо уже с первого запуска приложения, а Вы как думали?


Как уже упомянул выше — в Splash обычно размещают логотип, или информацию. Но можно и например встроить тематический генератор рекламы, Ваша фантазия. Но надо без фанатизма!
Но как говорил великий Гипократ:
— "Noli nocere!"

Итак, приступ к коду. Я предлагаю сделать простенький Splash Screen, Он выведет на экран картинку и будет ждать до тех пор пока мы не нажмем любую клавишу. Классика так сказать.

HabraSplash.java

import javax.microedition.lcdui.*;
 
public class HabraSplash extends Canvas{
    private int w,h; //Размеры экрана
    private Image splash = null; // Наше изображения
    public Display display;
//Конструктор
    public HabraSplash() {
        setFullScreenMode(true); //Полно экранный режим 
        w = getWidth();
        h = getHeight();
// Пытаемся загрузить изображение 
        try {
            splash = Image.createImage("/habra_splash.png");
        } 
// Если не получается - вешаем вечный Алерт 
catch (Exception e) {
            Alert a = new Alert("Ошибка!", "Splash Screen изображение не найдено!", null, AlertType.ERROR);
            a.setTimeout(Alert.FOREVER);
            display.setCurrent(a);
        }
    }
// Рисуем наш Splash Screen
    protected void paint(Graphics g) {
        g.drawImage(splash, w/2, h/2, 3);
    }
// Тут что то делаем если пользователь нажал на любую кнопку
    protected void keyPressed(int keyCode) {
        System.out.println("Hello Habrahabr!");
    }
}


Habra.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Habra extends MIDlet {

    public static Habra habra_midlet;
    public static HabraSplash splash_screen;
    public Display disp;


    public Habra(){
        habra_midlet = this;
        splash_screen = new HabraSplash();
    splash_screen.setFullScreenMode(true);
    }

    public void startApp() {
        disp = Display.getDisplay(this);
        disp.setCurrent(splash_screen);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
}

Результат:



И напоследок:


Для новичка, программирование на java очень интересное и увлекательное занятие. Не слушайте никого, потраченное время того стоит! Изучение J2ME даст Вам знание ООП, научит хорошо контролировать память и много чего другого.

Это только примитивный пример. Дальше — интересней…

Как говорит «Голодный» из Иркутска:
— «Пейте кофе, пишите Java!»


До свидания.
Tags: SplashScreenj2meне все потеряно
Hubs: Developmend for Java ME
Total votes 13: ↑8 and ↓5 +3
Comments 13
Comments Comments 13