4

我的問題類似於this question from a few years ago但這個問題從來沒有回答,我想知道是否有什麼改變,因爲它被問到。Flash元素的webview的編程截圖

我想以編程方式捕捉具有Flash元素的webview的屏幕截圖。當我嘗試使用在線描述最廣泛的方法時(使用view.drawview.getDrawingCache),Flash元素不會被捕獲。我相信這與軟件和硬件渲染元素有關。請讓我知道,如果我基於此。

我實際上並不需要在最終的應用程序中這樣做,只是在開發過程中,所以我會開放給一些adb hackery,但應用程序需要能夠觸發屏幕截圖。

我真的很感激任何想法。

感謝

+0

也許這個評論可以幫助你:http://stackoverflow.com/a/9805831/4336354 –

+0

你只想爲自己做這或者你也想爲用戶呢? –

回答

0

以下行應該鐵鍋你:)

browser.setDrawingCacheEnabled(true); 
    browser.buildDrawingCache(); 
    Bitmap bitmap = browser.getDrawingCache(); 
+0

是的,這就是我的。網頁的靜態部分被捕獲,閃存部分只是一個黑色的方塊。 –

2

你有root權限?如果是 - 您可以直接讀取圖形緩衝區,通過/ dev/graphics/fb0訪問它。

Here是一個討論如何通過adb做到這一點。

Here爲柱,如何做到這一點編程(你需要換用JNI層的代碼)

1

我還沒有嘗試過這種方法,但你使用反射理論上講着得到的一個手柄

com.android.systemui.screenshot.GlobalScreenshot 

void takeScreenshot(Runnable finisher, boolean statusBarVisible, boolean navBarVisible) 

查看此代碼 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.0_r1/com/android/systemui/screenshot/GlobalScreenshot.java#GlobalScreenshot.takeScreenshot%28java.lang.Runnable%2Cboolean%2Cboolean%29