📄 waitflash.java
字号:
////////////////////////////////////////////////////////////////////*/
package com.yxw.view;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import com.yxw.control.*;
import com.yxw.interfaces.HttpListener;
import com.yxw.model.PlayList;
import com.yxw.util.*;
public class WaitFlash extends Canvas implements CommandListener,HttpListener{
private int mCount, mMaxinum;
private int mInterval;
private int mWidth, mHeight, mx, my, mRadius;
private String Msg;
private Command cancel;
private Connection con;
protected void paint(Graphics g) {
int theta = -(mCount * 360 / mMaxinum);
///////////////
// 以下setColor我们是要定义动画的背景色彩
//g.setColor(255, 255, 255); // 这是白色
//g.setColor(8,65,99); // 这是深蓝色
g.setColor(222,235,198); // 这是浅绿色
g.fillRect(0, 0, mWidth, mHeight);
///////////////
///////////////
// 以下setColor我们是要定义动画中圆形物体的边缘色彩
//g.setColor(0x00ff0000); // 这是红色
g.setColor(173,195,41); // 这是绿色
///////////////
g.drawArc(mx, my, mRadius, mRadius, 0, 360);
///////////////
// 以下setColor我们是要定义动画中圆形物体的填充色彩
//g.setColor(255,154,49);// 橙色
g.setColor(115,166,49);// 深绿色
///////////////
g.fillArc(mx, my, mRadius, mRadius, theta + 90, 90);
g.fillArc(mx, my, mRadius, mRadius, theta + 270, 90);
if (Msg != null) {
g.drawString(Msg, mWidth / 2, my+mRadius+20, Graphics.BOTTOM
| Graphics.HCENTER);
}
}
public WaitFlash(String message,String url) {
mCount = 0;
mMaxinum = 36;
mInterval = 50;
mWidth = getWidth();
mHeight = getHeight();
int halfWidth = (mWidth - mRadius) / 2;
int halfHeight = (mHeight - mRadius) / 2;
mRadius = Math.min(halfWidth, halfWidth)-10;
mx = halfWidth - mRadius / 2;
my = halfHeight - mRadius / 2;
TimerTask task = new TimerTask() {
public void run() {
mCount = (mCount + 1) % mMaxinum;
repaint();
}
};
RMSDao rmsDao=new RMSDao();
boolean isProxy;
byte[] config=rmsDao.getConfig("config");
rmsDao=null;
ByteArrayInputStream inputStream=new ByteArrayInputStream(config);
DataInputStream dis=new DataInputStream(inputStream);
try {
dis.readInt();
isProxy=dis.readBoolean();
inputStream.reset();
inputStream.close();
dis.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
isProxy=false;
e.printStackTrace();
}
con=new Connection(url);
con.setDataType(Constant.LIEBIAO);
con.setProxy(isProxy);
con.setListener(this);
con.start();
this.Msg=message;
Timer timer = new Timer();
timer.schedule(task, 0, mInterval);
this.setCommandListener(this);
cancel=new Command("取消",Command.ITEM,2);
// Command tt=new Command("fds1",Command.ITEM,2);
// Command tt2=new Command("fds2",Command.ITEM,2);
// List list=new List("",List.IMPLICIT);
this.addCommand(cancel);
// this.addCommand(tt);
// this.addCommand(tt2);
}
public void setMessage(String messge) {
Msg = messge;
repaint();
}
public void commandAction(Command arg0, Displayable arg1) {
// TODO 自动生成方法存根
if(arg0==this.cancel){
MainMidlet.goBack();
}
}
public void onError(int code, String message) {
// TODO 自动生成方法存根
con.cancel();
MainMidlet.replace(new InfoForm("出错了",code+":"+message));
}
public void onFinish(byte[] data, int size) {//接收列表数据,传递给下一屏显示
// TODO 自动生成方法存根
if(data!=null){
ByteArrayInputStream inputStream = new ByteArrayInputStream(data);
DataInputStream dis=new DataInputStream(inputStream);
try {
int length=dis.readInt();
int currentPage=dis.readInt();
int totalPage=dis.readInt();
PlayList[] list=new PlayList[length];
int i=0;
while(dis.available()>0){
list[i]=new PlayList();
list[i].setFileName(dis.readUTF());//读取数据的顺序一定要跟服务器写入数据的顺序一致
list[i].setUrl(dis.readUTF());
list[i].setSize(dis.readLong());
i++;
}
inputStream.reset();
inputStream.close();
dis.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
MainMidlet.replace(new InfoForm("提示信息","getData size:"+size+"B"));
System.out.println("onFinish");
}
public void onProgress(int percent) {
// TODO 自动生成方法存根
System.out.println("onProgress");
}
public void onSetSize(int size, long fileSize) {
// TODO 自动生成方法存根
System.out.println("onSetSize");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -