我为每个人提供这个,希望能在你自己找到这个时为你节省一些脑损伤。
当我正在开发一个将在各种设备上运行的黑莓项目时,我遇到了从手机(包括 Torch 9850 ......比暴风雨,终于开始看起来像一个真正的智能手机 - 出色的性能和电池寿命)。
通常我会使用我值得信赖的 BBScreenShooter,一切都会好起来的,但是在尝试在 9850 上捕获图像时它一直在崩溃。我在这个网站上发布了几个求助请求,但没有人能告诉我为什么我的 BBScreenShooter 会崩溃或为什么我会"Retrieving screen <active> data ... Error: buffer too small"
直接使用 RIM 的 JavaLoader 实用程序。
对于那些不知道 BBScreenShooter 的人来说,将“繁重的工作”委托给 JavaLoader 来抓取图像。
在 Mark Sohm(我认识的最有见识的 BB 人之一)的帮助下,他让我验证我使用的是 v7 SDK 中包含的 JavaLoader。原来我不是。很好的抓住马克,谢谢!
从外观上看,JavaLoader 实用程序的早期版本似乎具有用于图像捕获的 byte[] 缓冲区,这些缓冲区是硬编码的……而且太小了。
因此,对于所有需要从 RIM 新的基于 480 x 800 的手机中截取屏幕截图的人,我提供了一份快速的“操作方法”指南,以帮助您尽快提高工作效率。
第 1 步 - 确保您已下载 v7.0 SDK(不一定要安装,但我想不出不安装的充分理由)。对于 Eclipse 用户:
步骤 1a) 进入帮助菜单
步骤 1b) 安装新软件菜单选项
步骤 1c)在“使用”字段中添加“BlackBerry - http://www.blackberry.com/go/eclipseUpdate/3.6/java ”项目。
步骤 1d) 在“BlackBerry Java Plug-in Category”下,查找“BlackBerry Java SDK v7.0.0.X”复选框,然后单击 NEXT。
步骤 1e) 接受许可协议并继续下载和安装过程。
第 2 步 - 转到新添加的 SDK 的安装目录。我们将获取 JavaLoader 实用程序路径的副本,并在 BAT 文件中使用它,该文件将自动捕获和命名屏幕截图。这可以在 /plugins/net.rim.ejde.componentpack7.0.0_7.0.0.28/components/bin/JavaLoader.exe 找到
第 3 步 - 创建一个用于保存屏幕截图的文件夹。这也将保存您的 BAT 文件,因为 BAT 文件特定于该特定项目。
第 4 步 - 创建 BAT 文件。在我的示例中,我将所有的 IDE、SDK ……实际上所有开发环境都保存在与我的操作系统不同的硬盘上。我将这些保留在驱动器 D 上,但修改您的 BAT 以反映您的配置的位置和需求。
步骤 4a) 关闭回声很重要,否则您可能无法使用桌面上的图标来启动此脚本/实用程序。
步骤 4b) 如果您的 BAT 文件在本地(与 JavaLoader 相同的文件夹)运行,则无需执行此步骤。另一方面,如果您的 JavaLoader 位于不同的硬盘驱动器上并且隐藏在文件夹的深处,那么您必须“更改目录”才能找到它。请注意与“更改目录 - cd”命令一起使用的“/D”开关,以便我们可以在同一步骤中更改驱动器和路径。
步骤 4c) 因为我喜欢对部分文件名使用时间戳...设置局部变量来表示当前日期和时间。
步骤 4d) 以下“for”语句将我的 Windows 7 计算机中的当前日期和时间解析为我想要包含为我的屏幕截图文件名的格式......file name == BlackBerry_<date image was taken>_<time image was taken>.bmp.
步骤 4e) 将 JavaLoader 捕获的新创建的设备屏幕截图复制到您的目标文件夹并使用我们刚刚创建的文件名。
步骤 4f) 现在我们已经成功地将屏幕截图的副本保存在我们想要的目标文件夹中,我们可以删除 JavaLoader 创建的临时图像。
步骤 4g) 我回应了一个小声明,让我知道这一切都有效。
示例 BAT 文件:
@echo off
cd /D D:\Program Files (x86)\EclipseBlackBerry\plugins\net.rim.ejde.componentpack7.0.0_7.0.0.28\components\bin
JavaLoader screenshot tempImage.bmp
set timestampdate=%date%
set timestamptime=%time%
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set timestampdate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set timestamptime=%%a%%b)
copy tempImage.bmp "C:\Users\CirrusFlyer\Desktop\<project name>\Testing\Screenshots\BlackBerry_%timestampdate%_%timestamptime%.bmp"
DEL tempImage.bmp
echo Completed "...\<project name>\Testing\Screenshots\BlackBerry_%timestampdate%_%timestamptime%.bmp"
第 5 步 - 关闭并保存您的 BAT 文件。我将 BAT 保存在我的实际项目文件夹中,然后创建了一个快捷方式并将其放在我的桌面上。通过这种方式,我可以启动并运行我的 Eclipse,并在我的手机上调试应用程序,当我想要截取屏幕截图时,只需双击快捷方式即可执行捕获。
这将创建屏幕截图并将它们放置在目标目录中:例如 BlackBerry_2011-10-07_1015 PM.bmp。
第 6 步 - 完成。快乐编码。希望这可以帮助。
我的下一个项目:扩展 Eclipse,以便我可以直接在 IDE 中进行屏幕捕获,就像在进行基于 Android 的编程时一样。