Android截图代码实现
来源:互联网 发布:找男生合租啪啪 知乎 编辑:程序博客网 时间:2024/05/17 23:49
Android截图代码实现
我们有时候只是需要截图,没必要连DDMS一起开,所以剥离了截图的代码,当然,并不是原生的啊,是根据原理自己写的,供大家参考
第一步,准备库包
我们既然是按照DDMS的方法截图,就需要用到ddmlib.jar这个包,它位于android的SDK目录的tools\lib下,我们需要把它加入到我们
的Eclipse工程的build path下。
第二步,建立连接,获取设备
有了ddmlib,我们就可以使用里面的 AndroidDebugBridge 类来获取已经同步的设备的列表并建立连接
上面的代码用到了一个waitDeviceList(bridge),主要是为了多次尝试连接,代码如下
这样我们就可以获得一个设备的类,IDevice,其中有一个getScreenshot()方法获得屏幕截图,类型为RawImage
RawImage rawScreen = device.getScreenshot(); 后面的方法就和Android无关了,纯粹的转换,Rawimage转换到bufferedimage,再保存
第一步,准备库包
我们既然是按照DDMS的方法截图,就需要用到ddmlib.jar这个包,它位于android的SDK目录的tools\lib下,我们需要把它加入到我们
的Eclipse工程的build path下。
第二步,建立连接,获取设备
有了ddmlib,我们就可以使用里面的 AndroidDebugBridge 类来获取已经同步的设备的列表并建立连接
- IDevice device;
- AndroidDebugBridge bridge = AndroidDebugBridge.createBridge();
- waitDeviceList(bridge);
-
- IDevice devices[] = bridge.getDevices();
- device = devices[0];
- private static void waitDeviceList(AndroidDebugBridge bridge) {
- int count = 0;
- while (bridge.hasInitialDeviceList() == false) {
- try {
- Thread.sleep(100); // 如果没有获得设备列表,则等待
- ount++;
- } catch (InterruptedException e) {}
- if (count > 300) {
- // 设定时间超过300×100 ms的时候为连接超时
- System.err.print("Time out");
- break;
- }
- }
- }
RawImage rawScreen = device.getScreenshot(); 后面的方法就和Android无关了,纯粹的转换,Rawimage转换到bufferedimage,再保存
- if(rawScreen != null){
- BufferedImage image = null;
- int width2 = landscape ? rawScreen.height : rawScreen.width;
- int height2 = landscape ? rawScreen.width : rawScreen.height;
- if (image == null) {
- image = new BufferedImage(width2,height2,
- BufferedImage.TYPE_INT_RGB);
- } else {
- if (image.getHeight() != height2 || image.getWidth() != width2) {
- image = new BufferedImage(width2, height2,
- BufferedImage.TYPE_INT_RGB);
- }
- }
- int index = 0;
- int indexInc = rawScreen.bpp >> 3;
- for (int y = 0; y < rawScreen.height; y++) {
- for (int x = 0; x < rawScreen.width; x++, index += indexInc) {
- int value = rawScreen.getARGB(index);
- if (landscape)
- image.setRGB(y, rawScreen.width - x - 1, value);
- else
- image.setRGB(x, y, value);
- }
- }
- ImageIO.write((RenderedImage)image,"PNG",new File("D:/temp.jpg"));
- }
- Android截图代码实现
- Android截图代码实现
- 【转】Android截图代码实现
- Android ddms截图代码实现
- 实现屏幕截图的代码-Android
- android应用内截图的代码实现
- android应用内截图的代码实现
- android应用内截图的代码实现
- android应用内截图的代码实现
- android中实现屏幕截图的代码
- Android 代码实现屏幕截图功能
- 用代码实现截图
- ANDROID截图代码
- android截图代码
- Android 屏幕截图 代码
- android截图代码
- Android 屏幕截图 代码
- android截图代码
- 调试Release发布版程序的Crash错误
- Qt窗口在屏幕上居中显示
- Shell常见知识
- 在vs下给工程添加include(包含)路径和添加lib文件路径
- mule esb 相关概念(摘要)
- Android截图代码实现
- java 实现自动编译成json struts2 中不用配置json等jar包来实现低耦合,低入侵式ajax访问返回数据
- 10项必学的.NET技术
- struts2 文件上传相关问题剖析
- 用PHPEXCEL类库导出EXCEL表格
- win7下zend studio 设置Courier New字体
- 7款最流行的在线项目管理工具推荐
- 祝贺博主新浪微博个人认证与企业微博认证通过,欢迎关注!
- JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat