2

私はウェブビューを持っていて、このようなビューをキャプチャします

    Picture picture = m_browser.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/temp_1.jpg");
        //fos = openFileOutput("samsp_1.jpg", MODE_WORLD_WRITEABLE);
        if ( fos != null )
        {
            b.compress(Bitmap.CompressFormat.JPEG,90, fos);  
            fos.close();
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
}

ロードされたWebサイトが長い場合、たとえば. times.comの場合、この画像も大きすぎます。

品質を落とさずに、この画像を複数の画像に分割したい。

これらの画像を可能な限り最高の品質で取得したいと考えています。

お願いします。ありがとう

4

2 に答える 2

1

ちょっとしたハックですが、これは非常に長い Web ページでもメモリ不足になることなく動作します。まず、Web ビューを別のレイアウト (RelativeLayout rl) 内に配置します。必要な画像サイズに合わせて RelativeLayout のサイズを変更します。次に呼び出します。

rl.draw(canvas);
// do something here to save your bitmap
webview.scrollby(0, rl.getHeight());

ページの一番下に到達するまでそれを繰り返します。

于 2011-09-16T06:44:39.990 に答える
0
Bitmap.createBitmap(source, x, y, width, height)

私はいつもこのコードを使用して、大きな画像を複数の画像にカットします。

簡単に使えます

于 2011-04-28T11:43:46.853 に答える