📄 mylogo.java
字号:
import javax.microedition.lcdui.*;
import com.nokia.mid.ui.FullCanvas;
public class MyLogo extends FullCanvas implements Logo, Runnable{
// interface Logo
public void addLogoListener( LogoListener logoListener ){
listener = logoListener;
}
public void showLogo( Display display ){
thread = new Thread( this );
thread.start();
display.setCurrent( this );
}
public void clearLogo(){
imgLogo = null;
imgLogo2 = null;
}
// interface Runnable
public void run(){
while( !done ){
try{
Thread.sleep( sleepTime );
switch( state ){
case 1:
showLogo();
break;
case 0: // pause
break;
}
}
catch( InterruptedException e ){
}
}
}
public void paint( Graphics gg ){
g = gg;
if( imgLogo != null ){
if( counter >= time2 && counter < time3 ){
g.setColor( 255, 255, 255 );
}
else{
g.setColor( 0, 0, 0 );
}
g.fillRect( 0, 0, getWidth(), getHeight() );
g.drawImage( imgLogo, (getWidth()-imgLogo.getWidth())/2,
(getHeight()-imgLogo.getHeight())/2, 4|16 );
}
}
protected void keyPressed( int keyCode ){
if( counter > time4 ){
stop();
}
}
protected void showNotify(){
state = 1;
}
protected void hideNotify(){
state = 0;
}
private void showLogo(){
if( counter < time1 ){
if( counter == 0 ){
try{
imgLogo = Image.createImage( "/logo1.png" );
drawImageCenterWhite( g, imgLogo );
repaint();
}
catch( Exception e ){
e.printStackTrace();
}
}
}
else if( counter < time2 ){
if( counter == time1 ){
try{
imgLogo = Image.createImage( "/logo2.png" );
drawImageCenter( g, imgLogo );
repaint();
}
catch( Exception e ){
e.printStackTrace();
}
}
}
else if( counter < time3 ){
if( counter == time2 ){
try{
imgLogo = Image.createImage( "/logo3.png" );
drawImageCenterWhite( g, imgLogo );
repaint();
}
catch( Exception e ){
e.printStackTrace();
}
}
}
else if( counter < time4 ){
if( counter == time3 ){
try{
imgLogo = Image.createImage( "/logo4.png" );
drawImageCenter( g, imgLogo );
repaint();
}
catch( Exception e ){
e.printStackTrace();
}
}
}
else if( counter < time5 ){
if( counter == time4 ){
try{
imgLogo = Image.createImage( "/logo5.png" );
drawImageCenter( g, imgLogo );
repaint();
listener.playLogo();
}
catch( Exception e ){
e.printStackTrace();
}
}
}
else{
stop();
}
counter++;
}
private void drawImageCenter( Graphics g, Image image ){
g.setColor( 0, 0, 0 );
g.fillRect( 0, 0, getWidth(), getHeight() );
g.drawImage( image, (getWidth()-image.getWidth())/2, (getHeight()-image.getHeight())/2, 16|4 );
}
private void drawImageCenterWhite( Graphics g, Image image ){
g.setColor( 255, 255, 255 );
g.fillRect( 0, 0, getWidth(), getHeight() );
g.drawImage( image, (getWidth()-image.getWidth())/2, (getHeight()-image.getHeight())/2, 16|4 );
}
private void stop(){
System.out.println( "logo complete" );
done = true;
listener.logoStop();
}
private LogoListener listener;
private Thread thread;
private boolean done = false; // 是否运行完成
// private boolean run = false; // 是否运行到
private int state = 0;
private int counter = 0;
private int time1 = 20;
private int time2 = 40;
private int time3 = 60;
private int time4 = 80;
private int time5 = 160;
private int sleepTime = 100;
private Image imgLogo;
private Image imgLogo2;
private Graphics g;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -