📄 welcome.java
字号:
/**
//文档生成日期:2005.8.14
//
//(1)概述:
//类名称:Welcome
//类说明:
//等候画面的Canvas
*
//所在子系统:Web Service kSOAP Caller
//
//系统总描述:
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/27/ksoapmidpwebservice1.html
讲的是
第一小步,Web Service传递String
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/27/ksoapmidpwebservice2.html
则给出了
第二小步,Web Service传递较为复杂的类
下面我们讲述如何在MIDP设备和Web Service之间传递较为复杂的类,比如这个类中不但有String类型成员变量,还有Vector之类的复杂类型。
从kSoap的FAQ上看,他们推荐使用KvmSerializable以及 ClassMap传递自定义类,但是我一直没有试验成功。
我还是按照能试验出来的办法讲述一下步骤吧:
大致思路就是,在服务器端将类实例按照一定规格(一个一个的成员变量写)序列化为byte[],将这个byte[]数组返回给kSOAP。kSOAP收到之后,再反序列化,将byte[]一段一段地读入类实例。
//(2)历史记录:
//创建人: 郑昀(2005.8.14)
//联系我: Google Talk >> zhengyun@gmail.com
//Blogs: http://blog.csdn.net/zhengyun_ustc/以及http://www.cnblogs.com/zhengyun_ustc
//(3)版权声明:
//遵照GPL协议的大意开放源代码,您可以自由传播和修改,在遵照GPL协议的约束条件的前提下。
////////////////////////////////////////////////////////////////////*/
package com.ultrapower.view;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
/**
* <p>
* Title: WaitingWebService
* </p>
* <p>
* Description:此类可用于长时间操作时的等待画面
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: ultrapower
* </p>
*
* @author 张文杰
* @version 1.0
*/
public class Welcome extends Canvas {
private int mCount, mMaxinum;
private int mInterval;
private int mWidth, mHeight, mx, my, mRadius;
private String Msg;
protected void paint(Graphics g) {
int theta = -(mCount * 360 / mMaxinum);
g.setColor(255, 255, 255);
g.fillRect(0, 0, mWidth, mHeight);
g.setColor(0x00ff0000);
g.drawArc(mx, my, mRadius, mRadius, 0, 360);
g.setColor(0x000000ff);
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 Welcome() {
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();
}
};
Timer timer = new Timer();
timer.schedule(task, 0, mInterval);
}
public void setMessage(String messge) {
Msg = messge;
repaint();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -