Android:如何在capturePicture之前更改webview宽度以保存视图

时间:2013-09-12 23:22:06

标签: android image canvas webview bitmap

我的应用程序上的webview变得很长。我希望用户能够将webview保存为图像以启用共享。 它现在正在工作,但代码生成一个长图像。我希望在保存前保持高度\宽度比例800 \ 600等。

不知道该怎么办?

这是我保存jpg的方式:

Picture picture = webview.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 {
    File file = new File(pathName);
    file.createNewFile();
    fos = new FileOutputStream(file);

    if (fos != null) {
        b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
        fos.close();
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (fos != null) {
        try {
            fos.close();
        } catch (IOException e) {
    }
}

,布局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@+id/a_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:id="@+id/fullscreen_content_controls"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">

        <Button
                android:id="@+id/reload"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/reload" />

    </LinearLayout>

    <WebView
        android:layout_width="fill_parent"
        android:id="@+id/webview"
        android:layout_above="@id/fullscreen_content_controls"
        android:layout_alignParentTop="true"
        android:layout_height="fill_parent" />
</RelativeLayout>

0 个答案:

没有答案