J2ME 手机拍照程序
来源:互联网 发布:诺基亚java软件下载 编辑:程序博客网 时间:2024/04/28 05:53
package com.zeph.j2me;import java.io.IOException;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Image;import javax.microedition.media.Manager;import javax.microedition.media.MediaException;import javax.microedition.media.Player;import javax.microedition.media.control.VideoControl;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class CameraControlMIDlet extends MIDlet implements CommandListener {private Display display;private CameraCanvas cameraCanvas;private Form picForm;private Command captureCommand;private Command exitCommand;private Command backCommand;private Player player;private VideoControl videoControl;public CameraControlMIDlet() {// TODO Auto-generated constructor stubdisplay = Display.getDisplay(this);try {player = Manager.createPlayer("capture://video");player.realize();videoControl = (VideoControl) player.getControl("VideoControl");cameraCanvas = new CameraCanvas(player, videoControl);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (MediaException e) {// TODO Auto-generated catch blocke.printStackTrace();}picForm = new Form("图像显示窗口");captureCommand = new Command("拍照", Command.OK, 0);exitCommand = new Command("退出", Command.EXIT, 0);backCommand = new Command("返回摄像头", Command.OK, 0);cameraCanvas.addCommand(captureCommand);cameraCanvas.addCommand(exitCommand);picForm.addCommand(backCommand);picForm.setCommandListener(this);cameraCanvas.setCommandListener(this);}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {// TODO Auto-generated method stub}protected void pauseApp() {// TODO Auto-generated method stub}protected void startApp() throws MIDletStateChangeException {// TODO Auto-generated method stubdisplay.setCurrent(cameraCanvas);}public void commandAction(Command command, Displayable displayable) {// TODO Auto-generated method stubif (command == captureCommand) {new Snapshot().start();//拍照时需要使用线程启动} else if (command == exitCommand) {try {destroyApp(true);} catch (MIDletStateChangeException e) {// TODO Auto-generated catch blocke.printStackTrace();}notifyDestroyed();} else if (command == backCommand) {display.setCurrent(cameraCanvas);}}class Snapshot extends Thread {//使用内部类可以很方便的使用VideoControl和Playerpublic Image getSnapshot() {Image image = null;if (player != null) {byte[] imageData;try {imageData = videoControl.getSnapshot(null);image = Image.createImage(imageData, 0, imageData.length);} catch (MediaException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return image;}public void run() {Image image = getSnapshot();picForm.append(image);display.setCurrent(picForm);}}}
package com.zeph.j2me;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import javax.microedition.media.MediaException;import javax.microedition.media.Player;import javax.microedition.media.control.VideoControl;public class CameraCanvas extends Canvas {public CameraCanvas(Player player, VideoControl videoControl) {try {videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);videoControl.setDisplayLocation(0, 0);videoControl.setDisplaySize(getWidth(), getHeight());player.start();videoControl.setVisible(true);} catch (MediaException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void paint(Graphics g) {// TODO Auto-generated method stub}}
在测试S403rd的系统时,需要把
player = Manager.createPlayer("capture://video");
更改为
player = Manager.createPlayer("capture://image");
- J2ME 手机拍照程序
- j2me实现手机拍照
- j2me实现手机拍照
- j2me实现手机拍照
- 关于J2ME调用手机拍照的程序问题
- J2ME手机游戏程序速成班
- 手机J2ME环境测试程序
- 手机J2ME程序开发(一)
- 手机J2ME程序开发(二)
- 手机J2ME程序开发(三)
- Eclipse开发J2ME手机程序
- j2me程序发布到手机
- j2me程序发布到手机
- j2me程序发布到手机
- j2me程序发布到手机
- j2me程序发布到手机
- JAVA程序让手机可透视拍照
- 从零开始打造Android手机摄像头拍照程序
- 兔子生兔子的编程题
- ICU-International Components for Unicode-字符编码的转换-先记下
- vbox里安装的linux不能全屏问题(不能调到1280*800)
- 统计某个接线员接打电话记录
- PC电源异常引起的不开机情况
- J2ME 手机拍照程序
- java pass by value 。do not exist pass by reference
- 高效高质量软件,规范很重要
- 登录窗口实现
- spry
- Chapter 3. Computer Architecture for Beginners
- 指针和数组名的实质区别(并不是一回事)
- Ext中的get、getDom、getCmp、getBody、getDoc的区别
- 提取坏硬盘中的数据