我为每个人提供此功能,希望能为您自己找到一些脑损伤。
当我正在研究将在各种设备上运行的黑莓项目时,我遇到了一个问题,即从手机中截取屏幕截图(包括Torch 9850 ......不如我的iPhone或我的Android EVO或Infuse,但是比Storm更好,最后开始看起来像真正的智能手机 - 性能和电池续航时间也很好。)
通常情况下,我会使用我信赖的BBScreenShooter,一切都会好的,但是当试图在9850上捕捉图像时它仍然会崩溃。我发布了几个requests for help on this site,但是没有人能告诉我为什么我的BBScreenShooter是崩溃或为什么我直接使用RIM的JavaLoader实用程序时会得到"Retrieving screen <active> data ... Error: buffer too small"
。
对于那些不了解BBScreenShooter的人,将“繁重的工作”委托给JavaLoader来抓取图像。
在Mark Sohm的帮助下(很容易就是我知道走遍地球的最知识渊博的BB伙伴之一),他让我验证我使用的是v7 SDK中包含的JavaLoader。事实证明我不是。好抓Mark,谢谢!
从外观上看,JavaLoader实用程序的早期版本具有用于图像捕获的字节[]缓冲区,这些缓冲区是硬编码的......而且太小。
因此,对于那些需要从RIM新推出的基于480 x 800的手机拍摄屏幕截图的人来说,我已经提供了一个快速的“如何”指南,以帮助您尽快提高效率。
步骤1 - 确保已下载v7.0 SDK(不必安装,但我想不出有充分的理由)。对于Eclipse用户:
步骤1a)转到“帮助”菜单
步骤1b)安装新软件菜单选项
步骤1c)在“work with”字段中添加“BlackBerry - http://www.blackberry.com/go/eclipseUpdate/3.6/java”项。
步骤1d)在“BlackBerry Java Plug-in Category”下,找到“BlackBerry Java SDK v7.0.0.X”复选框,然后单击“下一步”。
步骤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的编程时一样。