您的位置:首页 > 移动开发 > Android开发

罗升阳:那两年炼就的Android内功修养(转载老罗的)

2013-08-19 23:48 337 查看
通过Robot截取屏幕简单事例
package com.wyh.io;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class TestRobot implements Runnable {

// 文件名
private String fileName;
// 文件格式
private String imageFormat;
//文件名序号
private static int incrmentNum = 1;

public String getFileName() {
return fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}

public String getImageFormat() {
return imageFormat;
}

public void setImageFormat(String imageFormat) {
this.imageFormat = imageFormat;
}

public TestRobot() {

}

public TestRobot(String s, String format) {
fileName = s;
imageFormat = format;
}

// 截取桌面图象
public void startSnap(int i) {
try {

Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
// 通Robot获当前屏幕对象
BufferedImage screenshot = (new Robot())
.createScreenCapture(new Rectangle(0, 0, (int) dimension
.getWidth(), (int) dimension.getHeight()));

String name = fileName + incrmentNum + "." + imageFormat;
ImageIO.write(screenshot, imageFormat, new File(name));
incrmentNum++;

System.out.println("已经 保存线程 [" + i + "]" + "  " + name);
} catch (Exception ex) {
System.out.println(ex);
}
}

public void run() {
System.out.println("开始截取......");
for (int i = 1;; i++) {
this.startSnap(i);
try {
Thread.sleep(3800);
} catch (Exception e) {
e.printStackTrace();
}
}
}

// test in main
public static void main(String[] a) {
TestRobot testRobot = new TestRobot("D:\\javaApp\\TestApp\\test", "jpg");
Thread thread = new Thread(testRobot);
thread.start();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: