Java Code Examples for android.webkit.WebView#getContentHeight()

The following examples show how to use android.webkit.WebView#getContentHeight() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WebViewCapture.java    From ViewCapture with Apache License 2.0 6 votes vote down vote up
private Bitmap captureWebView3(WebView wv) {
    try {
        float scale = wv.getScale();
        int height = (int) (wv.getContentHeight() * scale + 0.5);
        Bitmap bitmap = Bitmap.createBitmap(wv.getWidth(), height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        wv.draw(canvas);
        return bitmap;
    } catch (Exception e) {
        try {
            openCache(wv);
            return wv.getDrawingCache();
        } finally {
            closeCache(wv);
        }
    }
}
 
Example 2
Source File: ViewUtils.java    From MVPAndroidBootstrap with Apache License 2.0 6 votes vote down vote up
/**
 * Convert view to an image.  Can be used to make animations smoother.
 *
 * @param context           The current Context or Activity that this method is called from
 * @param viewToBeConverted View to convert to a Bitmap
 * @return Bitmap object that can be put in an ImageView.  Will look like the converted viewToBeConverted.
 */
public static Bitmap viewToImage(Context context, WebView viewToBeConverted) {
    int extraSpace = 2000; //because getContentHeight doesn't always return the full screen height.
    int height = viewToBeConverted.getContentHeight() + extraSpace;

    Bitmap viewBitmap = Bitmap.createBitmap(viewToBeConverted.getWidth(), height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(viewBitmap);
    viewToBeConverted.draw(canvas);

    //If the view is scrolled, cut off the top part that is off the screen.
    try {
        int scrollY = viewToBeConverted.getScrollY();
        if (scrollY > 0) {
            viewBitmap = Bitmap.createBitmap(viewBitmap, 0, scrollY, viewToBeConverted.getWidth(), height - scrollY);
        }
    } catch (Exception ex) {
        Log.e("PercolateAndroidUtils", "Could not remove top part of the webview image.  ex=" + ex);
    }

    return viewBitmap;
}
 
Example 3
Source File: ViewUtils.java    From RxAndroidBootstrap with Apache License 2.0 6 votes vote down vote up
/**
 * Convert view to an image.  Can be used to make animations smoother.
 *
 * @param context           The current Context or Activity that this method is called from
 * @param viewToBeConverted View to convert to a Bitmap
 * @return Bitmap object that can be put in an ImageView.  Will look like the converted viewToBeConverted.
 */
public static Bitmap viewToImage(Context context, WebView viewToBeConverted) {
    int extraSpace = 2000; //because getContentHeight doesn't always return the full screen height.
    int height = viewToBeConverted.getContentHeight() + extraSpace;

    Bitmap viewBitmap = Bitmap.createBitmap(viewToBeConverted.getWidth(), height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(viewBitmap);
    viewToBeConverted.draw(canvas);

    //If the view is scrolled, cut off the top part that is off the screen.
    try {
        int scrollY = viewToBeConverted.getScrollY();
        if (scrollY > 0) {
            viewBitmap = Bitmap.createBitmap(viewBitmap, 0, scrollY, viewToBeConverted.getWidth(), height - scrollY);
        }
    } catch (Exception ex) {
        Log.e("PercolateAndroidUtils", "Could not remove top part of the webview image.  ex=" + ex);
    }

    return viewBitmap;
}
 
Example 4
Source File: ViewUtils.java    From caffeine with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
/**
 * Convert view to an image.  Can be used to make animations smoother.
 *
 * @param context           The current Context or Activity that this method is called from.
 * @param viewToBeConverted View to convert to a Bitmap.
 * @return Bitmap object that can be put in an ImageView.  Will look like the converted viewToBeConverted.
 */
public static Bitmap viewToImage(Context context, WebView viewToBeConverted) {
    int extraSpace = 2000; //because getContentHeight doesn't always return the full screen height.
    int height = viewToBeConverted.getContentHeight() + extraSpace;

    Bitmap viewBitmap = Bitmap.createBitmap(viewToBeConverted.getWidth(), height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(viewBitmap);
    viewToBeConverted.draw(canvas);

    //If the view is scrolled, cut off the top part that is off the screen.
    try {
        int scrollY = viewToBeConverted.getScrollY();
        if (scrollY > 0) {
            viewBitmap = Bitmap.createBitmap(viewBitmap, 0, scrollY, viewToBeConverted.getWidth(), height - scrollY);
        }
    } catch (Exception ex) {
        Log.e("Caffeine", "Could not remove top part of the webview image.  ex=" + ex);
    }

    return viewBitmap;
}
 
Example 5
Source File: NestedTouchScrollingLayout.java    From NestedTouchScrollingLayout with MIT License 5 votes vote down vote up
/**
 * 规避 contentHeight 异步变化
 * @return
 */
private boolean canWebViewScrollUp(WebView webView) {
    if (mWebViewContentHeight == 0) {
        mWebViewContentHeight = (int) (webView.getContentHeight() * webView.getScale());
    }
    final int offset = webView.getScrollY();
    final int range = mWebViewContentHeight - webView.getHeight();
    if (range == 0) {
        return false;
    }
    return offset > 2;
}
 
Example 6
Source File: NestedTouchScrollingLayout.java    From NestedTouchScrollingLayout with MIT License 5 votes vote down vote up
/**
 * 规避 contentHeight 异步变化
 * @return
 */
private boolean canWebViewScrollDown(WebView webView) {
    if (mWebViewContentHeight == 0) {
        mWebViewContentHeight = (int) (webView.getContentHeight() * webView.getScale());
    }
    final int offset = webView.getScrollY();
    final int range = mWebViewContentHeight - webView.getHeight();
    if (range == 0) {
        return false;
    }
    return offset < range - 2;
}
 
Example 7
Source File: ScreenShotHelper.java    From OmniList with GNU Affero General Public License v3.0 5 votes vote down vote up
private static void createType2(WebView webView, FileHelper.OnSavedToGalleryListener listener) {
    float scale = webView.getScale();
    int webViewHeight = (int) (webView.getContentHeight() * scale + 0.5);
    Bitmap bitmap = Bitmap.createBitmap(webView.getWidth(), webViewHeight, Config.RGB_565);
    Canvas canvas = new Canvas(bitmap);
    webView.draw(canvas);
    try {
        FileHelper.saveImageToGallery(PalmApp.getContext(), bitmap, true, listener);
        bitmap.recycle();
    } catch (Exception e) {
        LogUtils.e(e.getMessage());
    }
}
 
Example 8
Source File: MDRootLayout.java    From talk-android with MIT License 5 votes vote down vote up
private void invalidateDividersForWebView(WebView view, final boolean setForTop, boolean setForBottom, boolean hasButtons) {
    if (setForTop) {
        mDrawTopDivider = mTitleBar != null &&
                mTitleBar.getVisibility() != View.GONE &&
                //Not scrolled to the top.
                view.getScrollY() + view.getPaddingTop() > 0;
    }
    if (setForBottom) {
        //noinspection deprecation
        mDrawBottomDivider = hasButtons &&
                view.getScrollY() + view.getMeasuredHeight() - view.getPaddingBottom() < view.getContentHeight() * view.getScale();
    }
}
 
Example 9
Source File: WebViewText.java    From android-app with GNU General Public License v3.0 5 votes vote down vote up
private float convertWebViewToScreenY(float y) {
    if (ttsHost == null) {
        Log.w(TAG, "convertWebViewToScreenY() ttsHost is null");
        return 0;
    }

    WebView webView = ttsHost.getWebView();
    return y * webView.getHeight() / webView.getContentHeight();
}
 
Example 10
Source File: ScrollingUtil.java    From AgentWebX5 with Apache License 2.0 4 votes vote down vote up
public static boolean isWebViewToBottom(WebView webview, int mTouchSlop) {
    return webview != null && ((webview.getContentHeight() * webview.getScale() - (webview.getHeight() + webview.getScrollY())) <= 2 * mTouchSlop);
}
 
Example 11
Source File: MDRootLayout.java    From talk-android with MIT License 4 votes vote down vote up
private static boolean canWebViewScroll(WebView view) {
    //noinspection deprecation
    return view.getMeasuredHeight() < view.getContentHeight() * view.getScale();
}
 
Example 12
Source File: ScrollingUtil.java    From TwinklingRefreshLayout with Apache License 2.0 4 votes vote down vote up
public static boolean isWebViewToBottom(WebView webview, int mTouchSlop) {
    return webview != null && ((webview.getContentHeight() * webview.getScale() - (webview.getHeight() + webview.getScrollY())) <= 2 * mTouchSlop);
}
 
Example 13
Source File: BGAScrollingUtil.java    From AndroidStudyDemo with GNU General Public License v2.0 4 votes vote down vote up
public static boolean isWebViewToBottom(WebView webView) {
    return webView != null && webView.getContentHeight() * webView.getScale() == (webView.getScrollY() + webView.getMeasuredHeight());
}
 
Example 14
Source File: ScrollingUtil.java    From Pas with Apache License 2.0 4 votes vote down vote up
public static boolean isWebViewToBottom(WebView webView) {
    return webView != null && webView.getContentHeight() * webView.getScale() == (webView.getScrollY() + webView.getMeasuredHeight());
}