📄 canvas_main.java
字号:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
public final class Canvas_Main extends Canvas{
// 屏幕宽高
public static short SCREENW,SCREENH;
// 线程休眠时间
public static final short THREADSLEEPTIME = 80;
// 自定义
public static MIDlet_Main m_Midlet;
public static boolean m_IsThreadRun = true;
public static Thread m_Thread;
public static int m_Cnt_Time;
// 动画播放的阶段标示,昨天功能实现不出来,多半是没加这个东西,挖哈哈~~
public int ID_State;
public Canvas_Main(MIDlet_Main midlet){
setFullScreenMode(true);
m_Midlet = midlet;
initRes();
m_Thread = new Thread(){
public void run(){
while(m_IsThreadRun){
repaint();
m_Cnt_Time++;
try {
sleep(THREADSLEEPTIME);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
m_Thread.start();
}
public final void initRes(){
SCREENW = (short) getWidth();
SCREENH = (short) getHeight();
}
public final void showNotify(){
SCREENW = (short) getWidth();
SCREENH = (short) getHeight();
}
public final boolean drawJalousie(Graphics g,int width,int height,int rowNum,int colNum,int RGB,int changeTime,boolean isOpen)
{
g.setColor(RGB);
int cellMaxW = width/colNum;
int cellMaxH = height/rowNum;
int perHalfCellWidthchange = cellMaxW/(2*changeTime);
int perHalfCellHeightchange = cellMaxH/(2*changeTime);
if(perHalfCellWidthchange<1)
perHalfCellWidthchange = 1;
if(perHalfCellHeightchange<1)
perHalfCellHeightchange = 1;
int cellX = 0;
int cellY = 0;
int cellW = 0;
int cellH = 0;
if(isOpen)
{
cellX = cellMaxW/2-m_Cnt_Time*perHalfCellWidthchange;
cellY = cellMaxH/2-m_Cnt_Time*perHalfCellHeightchange;
cellW = 2*m_Cnt_Time*perHalfCellWidthchange;
cellH = 2*m_Cnt_Time*perHalfCellHeightchange;
if(cellX <= 0&&cellY <=0)
return true;
}else
{
cellX = m_Cnt_Time*perHalfCellWidthchange;
cellY = m_Cnt_Time*perHalfCellHeightchange;
cellW = cellMaxW-2*m_Cnt_Time*perHalfCellWidthchange;
cellH = cellMaxH-2*m_Cnt_Time*perHalfCellHeightchange;
if(cellW <= 0&&cellH <=0)
return true;
}
for(int i=0;i<rowNum;i++)
for(int j=0;j<colNum;j++)
{
g.fillRect(cellX+j*cellMaxW,cellY+i*cellMaxH,cellW,cellH);
}
return false;
}
public final void paint(Graphics g){
g.setColor(0xFFFF00);
g.fillRect(0,0,SCREENW,SCREENH);
switch(ID_State)
{
case 0:
m_Cnt_Time = 0;
ID_State = 1;
break;
case 1:
if(drawJalousie(g,SCREENW,SCREENH,12,9,0x000000,20,true)){
ID_State = 2;
m_Cnt_Time = 0;
g.setColor(0x000000);
g.fillRect(0,0,SCREENW,SCREENH);
}
break;
case 2:
if(drawJalousie(g,SCREENW,SCREENH,12,9,0x000000,20,false)){
ID_State = 3;
}
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -