Java Code Examples for android.webkit.WebView#draw()
The following examples show how to use
android.webkit.WebView#draw() .
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 |
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 |
/** * 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 |
/** * 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 |
/** * 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: WebViewCapture.java From ViewCapture with Apache License 2.0 | 5 votes |
@SuppressLint("WrongCall") private Bitmap captureWebView2(@NonNull final WebView view) { openCache(view); int measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); view.measure(measureSpec, measureSpec); if (view.getMeasuredWidth() <= 0 || view.getMeasuredHeight() <= 0) { return null; } Bitmap bm; try { bm = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); } catch (OutOfMemoryError e) { System.gc(); try { bm = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.RGB_565); } catch (OutOfMemoryError ee) { closeCache(view); return captureWebView3(view); } } Canvas bigCanvas = new Canvas(bm); Paint paint = new Paint(); int iHeight = bm.getHeight(); bigCanvas.drawBitmap(bm, 0, iHeight, paint); view.draw(bigCanvas); closeCache(view); return bm; }
Example 6
Source File: ScreenShotHelper.java From OmniList with GNU Affero General Public License v3.0 | 5 votes |
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 7
Source File: ShareUtil.java From memetastic with GNU General Public License v3.0 | 5 votes |
/** * Create a picture out of {@link WebView}'s whole content * * @param webView The WebView to get contents from * @return A {@link Bitmap} or null */ @Nullable public static Bitmap getBitmapFromWebView(final WebView webView) { try { //Measure WebView's content int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); webView.measure(widthMeasureSpec, heightMeasureSpec); webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight()); //Build drawing cache and store its size webView.buildDrawingCache(); int measuredWidth = webView.getMeasuredWidth(); int measuredHeight = webView.getMeasuredHeight(); //Creates the bitmap and draw WebView's content on in Bitmap bitmap = Bitmap.createBitmap(measuredWidth, measuredHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(bitmap, 0, bitmap.getHeight(), new Paint()); webView.draw(canvas); webView.destroyDrawingCache(); return bitmap; } catch (Exception | OutOfMemoryError e) { e.printStackTrace(); return null; } }
Example 8
Source File: ShareUtil.java From openlauncher with Apache License 2.0 | 5 votes |
/** * Create a picture out of {@link WebView}'s whole content * * @param webView The WebView to get contents from * @return A {@link Bitmap} or null */ @Nullable public static Bitmap getBitmapFromWebView(final WebView webView) { try { //Measure WebView's content int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); webView.measure(widthMeasureSpec, heightMeasureSpec); webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight()); //Build drawing cache and store its size webView.buildDrawingCache(); int measuredWidth = webView.getMeasuredWidth(); int measuredHeight = webView.getMeasuredHeight(); //Creates the bitmap and draw WebView's content on in Bitmap bitmap = Bitmap.createBitmap(measuredWidth, measuredHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(bitmap, 0, bitmap.getHeight(), new Paint()); webView.draw(canvas); webView.destroyDrawingCache(); return bitmap; } catch (Exception | OutOfMemoryError e) { e.printStackTrace(); return null; } }
Example 9
Source File: ShareUtil.java From Stringlate with MIT License | 5 votes |
/** * Create a picture out of {@link WebView}'s whole content * * @param webView The WebView to get contents from * @return A {@link Bitmap} or null */ @Nullable public static Bitmap getBitmapFromWebView(WebView webView) { try { //Measure WebView's content int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); webView.measure(widthMeasureSpec, heightMeasureSpec); webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight()); //Build drawing cache and store its size webView.buildDrawingCache(); int measuredWidth = webView.getMeasuredWidth(); int measuredHeight = webView.getMeasuredHeight(); //Creates the bitmap and draw WebView's content on in Bitmap bitmap = Bitmap.createBitmap(measuredWidth, measuredHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(bitmap, 0, bitmap.getHeight(), new Paint()); webView.draw(canvas); webView.destroyDrawingCache(); return bitmap; } catch (Exception | OutOfMemoryError e) { e.printStackTrace(); return null; } }