Como posso criar uma splash screen para minha aplicação com o logo da empresa ? E qual as dimenções ideais para a imagem para se adaptar na maioria dos dispositivos disponíveis no mercado.
Utilizo MIDP 2.0 e CLDC 1.1
Olá,
Use Canvas (se vc não sabe como, pesquise, tem material aqui no PJ).
Acho que uma dimensão de imagem ideal seria:
Largura: De 80 a 128
Altura: De 80 a 128
Pintando o resto da tela com a cor de fundo da imagem.
Utilize a classe Timer para fazer o Splash desaparecer na hora que vc deseja.
Até mais!
PS.: Existe uma classe de Splash implementada pelo pessoal do Netbeans (dentro do mobility pack) se preferir.
F
felipedonattiPJ
Obrigado pela resposta Clóvis, mas gostaria de saber tb se existe algum diretório em específico onde eu possa colocar a imagem para ser carregada dentro do meu jar. Desde já agradeço.
Um grande abraço e boas festas !
C
clvPJ
Existe sim, o diretório “res” onde você irá colocar todos os arquivos necessários a sua aplicação e que não são .java
Abraço!
E
eldocardosoPJ
amigo se vc usar a IDE Netbeans, você irá encontrar várias classes já prontas… uma delas é A classe SplashScreem… mto fácil de usar…
L
liclopesPJ
No site da SUN tem um tutorial que ensina a fazer uma splash screens (tela de apresentação) usando um simples alerta
publicclassExMIDletextendsMIDletimplementsCommandListener{privateDisplaydisplay;privateCommandexitCommand=newCommand("Exit", Command.EXIT, 1 );//construtorpublicExMIDlet(){}protectedvoiddestroyApp(boolean unconditional) throws MIDletStateChangeException {exitMIDlet();}protectedvoidpauseApp(){}protectedvoidstartApp() throws MIDletStateChangeException {if(display == null){initMIDlet();}}privatevoidinitMIDlet(){display=Display.getDisplay( this );newSplashScreen(display, new TrivialForm() );}publicvoidexitMIDlet(){notifyDestroyed();}publicvoidcommandAction(Command c, Displayable d ){exitMIDlet();}//umatela(form) trivial p/ a splsh screenclassTrivialFormextendsForm{TrivialForm(){super("ExMIDlet");addCommand(exitCommand);setCommandListener(ExMIDlet.this);}}}
um carinha deu uma outra idéia
publicclassExMIDletextendsMIDletimplementsCommandListener{//construtorpublicExMIDlet(){}protectedvoiddestroyApp(boolean unconditional) throws MIDletStateChangeException {exitMIDlet();}protectedvoidpauseApp(){}protectedvoidstartApp(){Displayablecurrent=Display.getDisplay(this).getCurrent();if(current == null){//current=vazio,aplicacaoiniciandohoradeexibirasplashscrrenSplashScreensplashScreen=newSplashScreen(this, mainMenu);Display.getDisplay(this).setCurrent(splashScreen);splashScreen.start();}voidstart(){if(timer != null)timer.cancel();}timer=newTimer();TimerTaskdismissTask=newTimerTask(){publicvoidrun(){if(timer != null)//Cancelaotimer(timer.cancel()) e exibe a prox tela de acordo c/ o Construtordismiss();}};//terminacomosplashdepoisde4segstimer.schedule(dismissTask, 4000L);
privateDisplaydisplay;privateDisplayablenext;privateImageresim=null;// picture which will be shown when midlet startprivateTimertimer=newTimer();publicSplashScreen(Displaydisplay,Displayablenext){this.display=display;this.next=next;display.setCurrent(this);}protectedvoidkeyPressed(intkeyCode){dismiss();}protectedvoidpaint(Graphicsg){try{g.setColor(255,255,255);g.drawRect(0,0,getWidth(),getHeight());resim=Image.createImage("/logo.png");g.drawImage(resim,getWidth()/2,getHeight()/2,Graphics.HCENTER|Graphics.VCENTER);}catch(IOExceptionex){System.out.println("Can't find logo!"+ex.toString());}}protectedvoidpointerPressed(intx,inty){dismiss();}// Splash time: 5 secondprotectedvoidshowNotify(){timer.schedule(newCountDown(),5000);}
// Cancel splash screen with press any button instead of waiting 5 secondsprivatevoiddismiss(){timer.cancel();display.setCurrent(next);}