4

android/phonegapアプリにcss3ページめくり効果を実装しようとしています。これを行うには、現在のWebビューをpngまたはjpegに動的に保存して、ページフリップhtmlのdivにロードできるようにする必要があります。AndroidのドキュメントでPictureクラスに気づきましたが、それを変換して保存できるかどうかはわかりません。これはJSを介して行うことができますか?何か案は?

ありがとう

4

2 に答える 2

6

次のコードを試して、webview をキャプチャし、保存した jpg を sdcard に保存してください。

webview.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        Picture picture = view.capturePicture();
        Bitmap b = Bitmap.createBitmap(
            picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        picture.draw(c);

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream( "/sdcard/"  + "page.jpg" );
            if ( fos != null ) {
                b.compress(Bitmap.CompressFormat.JPEG, 90, fos );
                fos.close();
            }
        } 
        catch( Exception e ) {
            System.out.println("-----error--"+e);
        }
    }
});

webview.loadUrl("http://stackoverflow.com/questions/15351298/capturing-android-webview-image-and-saving-to-png-jpeg");
于 2013-03-12T12:12:23.083 に答える
1

(私の知る限り) を画像としてキャプチャする最も簡単な方法は、新しいBitmapと新しいCanvasViewを作成することです。次に、Activity のデフォルトの Canvas ではなく、独自の Canvas に自分自身を描画するように依頼します。WebView

擬似コード:

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
myWebView.draw(canvas);
//save your bitmap, do whatever you need
于 2013-03-12T00:49:48.873 に答える