捕获Android屏幕Cordova PhoneGap

时间:2013-12-05 00:11:02

标签: android cordova android-webview capture

我试图在Apache Cordova PhoneGap中实现此功能,但它对我不起作用

How to programmatically take a screenshot in Android?

How can I programmatically take a screenshot of a webview, capturing the full page?

当我打电话给

 WebView browserView = (WebView) findViewById(R.id.content);

我实际上是对以下对象的引用

 LinearLayoutSoftKeyboardDetect

而不是WebView。

有关如何修复它的想法吗?

1 个答案:

答案 0 :(得分:0)

基于Cordova / PhoneGap的应用程序将WebView封装到最终从CordovaActivity CordovaActivity扩展的DroidGap类中。此活动包含一个受保护的组件,其中包含wiew CordovaWebView appView ,并配置了 ID等于100

protected CordovaWebView appView;
...
this.appView.setId(100);

因此,你应该能够通过寻找ID 100这样做来找到View:

CordovaWebView view = (CordovaWebView) activity.findViewById(100);
Picture picture = view.capturePicture();
Bitmap b = Bitmap.createBitmap (picture.getWidth(), 
                                picture.getHeight(), 
                                Bitmap.Config.ARGB_8888);
picture.draw(new Canvas(b));
FileOutputStream foss = new FileOutputStream(out);
b.compress(Bitmap.CompressFormat.PNG, 100, foss);
foss.close(); 

这应该有用。