Android PC端截图源代码
我们有时候只是需要截图,没必要连DDMS一起开,所以剥离了截图的代码,当然,并不是原生的啊,是根据原理自己写的,供大家参考
第一步,准备库包
我们既然是按照DDMS的方法截图,就需要用到ddmlib.jar这个包,它位于android的SDK目录的tools\lib下,我们需要把它加入到我们
的Eclipse工程的build path下。
第二步,建立连接,获取设备
有了ddmlib,我们就可以使用里面的 AndroidDebugBridge 类来获取已经同步的设备的列表并建立连接
Code:
1IDevice device;
2AndroidDebugBridge bridge = AndroidDebugBridge.createBridge();
3waitDeviceList(bridge);
4
5IDevice devices[] = bridge.getDevices();
6device = devices[0];
上面的代码用到了一个waitDeviceList(bridge),主要是为了多次尝试连接,代码如下
Code:
7private static void waitDeviceList(AndroidDebugBridge bridge) {
8 int count = 0;
9 while (bridge.hasInitialDeviceList() == false) {
10 try {
11 Thread.sleep(100); // 如果没有获得设备列表,则等待
12 ount++;
13 } catch (InterruptedException e) {}
14 if (count > 300) { // 设定时间超过300×100 ms的时候为连接超时
15 System.err.print("Time out");
16 break;
17 }
18 }
19}
这样我们就可以获得一个设备的类,IDevice,其中有一个getScreenshot()方法获得屏幕截图,类型为RawImage
Code:
20RawImage rawScreen = device.getScreenshot();
后面的方法就和Android无关了,纯粹的转换,Rawimage转换到bufferedimage,再保存
Code:
21if(rawScreen != null){
22 BufferedImage image = null;
23 int width2 = landscape ? rawScreen.height : rawScreen.width;
24 int height2 = landscape ? rawScreen.width : rawScreen.height;
25 if (image == null) {
26 image = new BufferedImage(width2, height2,
27 BufferedImage.TYPE_INT_RGB);
28 } else {
29 if (image.getHeight() != height2 || image.getWidth() != width2) {
30 image = new BufferedImage(width2, height2,
31 BufferedImage.TYPE_INT_RGB);
32 }
33 }
34
35 int index = 0;
36 int indexInc = rawScreen.bpp >> 3;
37 for (int y = 0; y < rawScreen.height; y++) {
38 for (int x = 0; x < rawScreen.width; x++, index += indexInc) {
39 int value = rawScreen.getARGB(index);
40 if (landscape)
41 image.setRGB(y, rawScreen.width - x - 1, value);
42 else
43 image.setRGB(x, y, value);
44 }
45 }
46 ImageIO.write((RenderedImage)image,"PNG",new File("D:/temp.jpg"));
47 }
分享到:
相关推荐
Android与PC蓝牙交互源代码。最基本的Android与笔记本电脑蓝牙通讯的DEMO
安卓Android源码——实现远程控制PC源代码.rar
Android与PC通讯Socket编程代码,Java源码,仅供参考。源代码内分Socket_Client、Socket_Server两个文件夹。
Android studio 通过以servlet搭建的服务器访问 PC端 mysql数据库(一)服务端源代码
Delphi11.3FMX微信支付到个人账户源代码(手机POS机安卓源代码、手机APP收款机苹果源代码、PC源代码) 可以生成微信收款二维码 可以生成支付宝收款二维码 可以扫微信支付码 可以扫支付宝支付码 没有年费的POS机,...
PC+Android 1、适用范围:第三方物流仓储企业,自营仓储等。 2、技术特点:基于JAVA的WEB后台, 基于ANDROID开发的PDA系统, 3、功能特点:涵盖订单管理系统(OMS),仓储管理 系统(WMS),计费管理系统(BMS),现场作业系...
一款android手机连接PC机的手机端源码
全套上门洗车APP源码,分为ANDROID手机端、IOS手机端、PC管理端,可直接使用
安卓Android源码——实现远程控制PC源代码.zip
说明:这是本人根据 awen_PC 上传的代码《个人根据Android移动开发案例详解手写的一个连连看游戏2》(http://download.csdn.net/detail/awen_PC/3174778)而...最后再次致谢awen_PC提供的源代码。共同进步,乐在分享。
供android初学者学习熟悉udp通信,pc机端用vc编写,已经测试通过。
安卓Android源码——Android应用源码之 实现远程控制PC源代码.7z
安卓Android源码——Android应用源码之 实现远程控制PC源代码.zip
用Qt【服务器端】+Android【客户端】实现手机远程控制PC,内含服务器和客户端的所有代码。
Android应用源码安卓与PC的Socket通信项目java版
android手机与PC视频互通源码,一个挺不错的东西,学习android的兄弟们可以参考下了
程序分为 android手机端的 apk 和 Pc端的 exe 两个 文件 。 程序会自己建立一个热点 ,另一个手机或PC 连接到网络 即可通过程序发送文件 。 不需要cmcc 等 第三方的无限网络 。 不耗GPRS 流量 可以放心 传送文件。...
Delphi11.3源代码写的电工技能考试程序,包括手机安卓和电脑PC端。免费的。
无线点餐系统,有android客户端和后台servlet。可以参考一下。
上门洗车APP源码,IOS手机端源代码,整套系统分为ANDROID端、IOS端、PC管理端,可直接使用