j2me智能手机实现远程监控室内操作(高级界面篇)
2008-09-28 11:02
253 查看
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Spacer;
import java.io.IOException;
import java.util.Timer;
import sun.HttpConnection.HttpStringThread;
import sun.HttpConnection.TaskInterface;
import sun.dao.Control;
/**
* @date 2008-08-22
* @author Administrator
* @function 监视操作:远程监视图片初始化界面
*/
public class VideoCatchForm extends Form implements CommandListener,
TaskInterface{
private Command Active_Start = new Command("开始",Command.ITEM,1);
private Command Active_End = new Command("停止",Command.ITEM,2);
private Command Black = new Command("返回",Command.BACK,3);
Alert alert;
TaskInterface ti;
int count=0;
ImageItem item;
Image img11;
Image img12;
String str = "";
NormalMIDlet midlet;
boolean ischeck;//验证码标识
public VideoCatchForm(NormalMIDlet Nmidlet) {
super("视频抓拍");
midlet = Nmidlet;
try{
img11 = Image.createImage("/png/11.png");
img12 = Image.createImage("/png/12.png");
}catch(IOException ioe){
ioe.printStackTrace();
}
append(new Spacer(200,10));
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
append(item);
addCommand(Active_Start);
addCommand(Active_End);
addCommand(Black);
setCommandListener(this);
ti = this;
}
public void commandAction(Command cmd, Displayable s) {
//开始监视
if(cmd == Active_Start){
if(midlet.ischeck == true){
this.ischeck = true;
str = cmd.getLabel();
item = new ImageItem("",img12,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=Start";
HttpStringThread htt = new HttpStringThread(strUrl,ti);
Thread th = new Thread(htt);
th.start();
}else{
this.ischeck = false;
alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
AlertType.ERROR);
midlet.display.setCurrent(alert);
}
}
//停止操作
else if(cmd == Active_End){
if(midlet.ischeck == true){
this.ischeck = true;
str = cmd.getLabel();
midlet.timer.cancel();
String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=End";
HttpStringThread htt = new HttpStringThread(strUrl,ti);
Thread th = new Thread(htt);
th.start();
}else{
ischeck = false;
alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
AlertType.ERROR);
midlet.display.setCurrent(alert);
}
}
//返回
else if(cmd == Black){
midlet.display.setCurrent(midlet.mainList);
midlet.timer.cancel();
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
}
}
//处理通信结果值
public void data(String result) {
if(result.equals("success")){
if(str.equals("开始")){
midlet.timer = new Timer();
midlet.timer.schedule(new VideoTimer(this,midlet), 0, 2000);
}
else if(str.equals("停止")){
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
}
}
else if(result.equals("error")||result.equals("fail")||result.equals("CommunicationError")){
Alert failer = new Alert("提示:", "连接远程设备失败", null,
AlertType.ERROR);
midlet.display.setCurrent(failer);
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1, item);
}
}
public void data(boolean result, String canvas) {
;
}
public void data(String result, String canvas) {
;
}
public void data(byte[] result) {
;
}
}
////////////////////////////////////////////////////////////////////
import java.util.TimerTask;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import sun.HttpConnection.HttpImageThread;
import sun.HttpConnection.HttpStringThread;
import sun.HttpConnection.TaskInterface;
import sun.dao.Control;
/**
*
* @author Administrator
* @function 图像抓取显示结果处理
*/
public class VideoTimer extends TimerTask implements TaskInterface {
VideoCatchForm cc;
NormalMIDlet midlet;
int count=0;
public VideoTimer(){
}
public VideoTimer(VideoCatchForm cc,NormalMIDlet midlet){
this.cc=cc;
this.midlet = midlet;
}
//上传图片到网站
public void run() {
String resURL="wap2.a-ihome.com/VideoContent.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO();
HttpStringThread hst=new HttpStringThread(resURL,this);
Thread th=new Thread(hst);
th.start();
count++;
cc.count=count;
if(this.count>20){
midlet.timer.cancel();
ImageItem item = new ImageItem("",midlet.videocatch.img11,ImageItem.LAYOUT_CENTER,"");
cc.set(1,item);
midlet.display.setCurrent(cc);
}
}
public final Image scale (Image srcImage, int newW, int newH) {
int srcW = srcImage.getWidth();
int srcH = srcImage.getHeight();
//先做水平方向上的伸缩变换
Image tmp = Image.createImage(newW, srcH);
Graphics g = tmp.getGraphics();
for (int x = 0; x < newW; x++) {
g.setClip(x, 0, 1, srcH);
//按比例放缩
g.drawImage(srcImage,x-x*srcW/newW,0,Graphics.LEFT |Graphics.TOP);
}
//再做垂直方向上的伸缩变换
Image dst = Image.createImage(newW, newH);
g = dst.getGraphics();
for (int y = 0; y < newH; y++) {
g.setClip(0, y, newW, 1);
//按比例放缩
g.drawImage(tmp,0,y-y*srcH/newH,Graphics.LEFT | Graphics.TOP);
}
return dst;
}
public void data(String result) {
if(!result.equals("")){
String strUrl = "wap2.a-ihome.com/Image/"+ControlAurine.getAreaNO()+"-"+ControlAurine.getTerminalNO()+"-Video.jpg";
HttpImageThread htt = new HttpImageThread(strUrl,this);
Thread th = new Thread(htt);
th.start();
}
}
public void data(boolean result, String canvas) {
;
}
public void data(String result, String canvas) {
;
}
public void data(byte[] result) {
Image img=Image.createImage(result, 0, result.length);
ImageItem item = new ImageItem("",scale(img, 175, 150),ImageItem.LAYOUT_CENTER,"");
if(img==null){
;
}else{
cc.set(1,item);
}
}
}
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Spacer;
import java.io.IOException;
import java.util.Timer;
import sun.HttpConnection.HttpStringThread;
import sun.HttpConnection.TaskInterface;
import sun.dao.Control;
/**
* @date 2008-08-22
* @author Administrator
* @function 监视操作:远程监视图片初始化界面
*/
public class VideoCatchForm extends Form implements CommandListener,
TaskInterface{
private Command Active_Start = new Command("开始",Command.ITEM,1);
private Command Active_End = new Command("停止",Command.ITEM,2);
private Command Black = new Command("返回",Command.BACK,3);
Alert alert;
TaskInterface ti;
int count=0;
ImageItem item;
Image img11;
Image img12;
String str = "";
NormalMIDlet midlet;
boolean ischeck;//验证码标识
public VideoCatchForm(NormalMIDlet Nmidlet) {
super("视频抓拍");
midlet = Nmidlet;
try{
img11 = Image.createImage("/png/11.png");
img12 = Image.createImage("/png/12.png");
}catch(IOException ioe){
ioe.printStackTrace();
}
append(new Spacer(200,10));
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
append(item);
addCommand(Active_Start);
addCommand(Active_End);
addCommand(Black);
setCommandListener(this);
ti = this;
}
public void commandAction(Command cmd, Displayable s) {
//开始监视
if(cmd == Active_Start){
if(midlet.ischeck == true){
this.ischeck = true;
str = cmd.getLabel();
item = new ImageItem("",img12,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=Start";
HttpStringThread htt = new HttpStringThread(strUrl,ti);
Thread th = new Thread(htt);
th.start();
}else{
this.ischeck = false;
alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
AlertType.ERROR);
midlet.display.setCurrent(alert);
}
}
//停止操作
else if(cmd == Active_End){
if(midlet.ischeck == true){
this.ischeck = true;
str = cmd.getLabel();
midlet.timer.cancel();
String strUrl = "wap2.a-ihome.com/Video.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO()+"&Active=End";
HttpStringThread htt = new HttpStringThread(strUrl,ti);
Thread th = new Thread(htt);
th.start();
}else{
ischeck = false;
alert = new Alert("提示:", "您输入的序列号或验证码有误", null,
AlertType.ERROR);
midlet.display.setCurrent(alert);
}
}
//返回
else if(cmd == Black){
midlet.display.setCurrent(midlet.mainList);
midlet.timer.cancel();
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
}
}
//处理通信结果值
public void data(String result) {
if(result.equals("success")){
if(str.equals("开始")){
midlet.timer = new Timer();
midlet.timer.schedule(new VideoTimer(this,midlet), 0, 2000);
}
else if(str.equals("停止")){
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1,item);
}
}
else if(result.equals("error")||result.equals("fail")||result.equals("CommunicationError")){
Alert failer = new Alert("提示:", "连接远程设备失败", null,
AlertType.ERROR);
midlet.display.setCurrent(failer);
item = new ImageItem("",img11,ImageItem.LAYOUT_CENTER,"");
this.set(1, item);
}
}
public void data(boolean result, String canvas) {
;
}
public void data(String result, String canvas) {
;
}
public void data(byte[] result) {
;
}
}
////////////////////////////////////////////////////////////////////
import java.util.TimerTask;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import sun.HttpConnection.HttpImageThread;
import sun.HttpConnection.HttpStringThread;
import sun.HttpConnection.TaskInterface;
import sun.dao.Control;
/**
*
* @author Administrator
* @function 图像抓取显示结果处理
*/
public class VideoTimer extends TimerTask implements TaskInterface {
VideoCatchForm cc;
NormalMIDlet midlet;
int count=0;
public VideoTimer(){
}
public VideoTimer(VideoCatchForm cc,NormalMIDlet midlet){
this.cc=cc;
this.midlet = midlet;
}
//上传图片到网站
public void run() {
String resURL="wap2.a-ihome.com/VideoContent.aspx?TerminalNO="+Control.getTerminalNO()+"&AreaNO="+Control.getAreaNO();
HttpStringThread hst=new HttpStringThread(resURL,this);
Thread th=new Thread(hst);
th.start();
count++;
cc.count=count;
if(this.count>20){
midlet.timer.cancel();
ImageItem item = new ImageItem("",midlet.videocatch.img11,ImageItem.LAYOUT_CENTER,"");
cc.set(1,item);
midlet.display.setCurrent(cc);
}
}
public final Image scale (Image srcImage, int newW, int newH) {
int srcW = srcImage.getWidth();
int srcH = srcImage.getHeight();
//先做水平方向上的伸缩变换
Image tmp = Image.createImage(newW, srcH);
Graphics g = tmp.getGraphics();
for (int x = 0; x < newW; x++) {
g.setClip(x, 0, 1, srcH);
//按比例放缩
g.drawImage(srcImage,x-x*srcW/newW,0,Graphics.LEFT |Graphics.TOP);
}
//再做垂直方向上的伸缩变换
Image dst = Image.createImage(newW, newH);
g = dst.getGraphics();
for (int y = 0; y < newH; y++) {
g.setClip(0, y, newW, 1);
//按比例放缩
g.drawImage(tmp,0,y-y*srcH/newH,Graphics.LEFT | Graphics.TOP);
}
return dst;
}
public void data(String result) {
if(!result.equals("")){
String strUrl = "wap2.a-ihome.com/Image/"+ControlAurine.getAreaNO()+"-"+ControlAurine.getTerminalNO()+"-Video.jpg";
HttpImageThread htt = new HttpImageThread(strUrl,this);
Thread th = new Thread(htt);
th.start();
}
}
public void data(boolean result, String canvas) {
;
}
public void data(String result, String canvas) {
;
}
public void data(byte[] result) {
Image img=Image.createImage(result, 0, result.length);
ImageItem item = new ImageItem("",scale(img, 175, 150),ImageItem.LAYOUT_CENTER,"");
if(img==null){
;
}else{
cc.set(1,item);
}
}
}
相关文章推荐
- j2me智能手机实现远程监控室内操作(低级界面篇)
- J2ME 高级界面下实现九宫格
- J2ME高级界面实现页面之间的跳转
- python操作摄像头截图实现远程监控的例子
- J2ME高级界面实现页面之间的跳转
- Digitalocean VPS centos 7安装图形化界面KDE和VNC实现远程图形化操作
- 使用HI3518E实现智能社区的可视楼宇门禁系统(手机远程呼叫)
- python操作摄像头截图实现远程监控的例子
- Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现
- j2me实现手机拍照
- J2ME road——J2ME实现RMS手机的存储
- 云端远程操作实现
- java实现dos窗口文件操作命令2(远程操作)
- [置顶] PLC远程通讯功能集锦(互联网、局域网)(PLC远程监控,PLC远程监视,PLC手机监控)
- 颤抖吧Android!苹果获终极智能手机触控界面专利
- 微信群控系统源码,微信云控系统源码的升级版,一部手机操作100个微信号的核心源码实现,核心技术架构
- 远程桌面连接的开启,和借助内外网软件,实现外网PC手机远程控制内网电脑,详细图文教程
- [J2ME]手机看交通监视器实时录像 实现说明
- Linux高级字符设备驱动 poll方法(select多路监控原理与实现)
- 【大话QT之五】Windows与Linux下文件操作监控的实现