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

The following examples show how to use android.webkit.WebView#layout() . 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: ShareUtil.java    From memetastic with GNU General Public License v3.0 5 votes vote down vote up
/**
 * 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 2
Source File: ShareUtil.java    From openlauncher with Apache License 2.0 5 votes vote down vote up
/**
 * 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 3
Source File: ShareUtil.java    From Stringlate with MIT License 5 votes vote down vote up
/**
 * 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;
    }
}
 
Example 4
Source File: BaseFragmentActivity.java    From android-project-wo2b with Apache License 2.0 4 votes vote down vote up
/**
 * 系统加载
 */
protected void systemLoader(Context context)
{
	if (RockySdk.getInstance().getContext() != null)
	{
		return;
	}
	
	Context application = context.getApplicationContext();
	
	// 用于获取浏览器代理
	WebView webview = new WebView(context);
	webview.layout(0, 0, 0, 0);
	WebSettings webSettings = webview.getSettings();
	
	ApplicationInfo applicationInfo = context.getApplicationInfo();
	
	VersionInfo versionInfo = ManifestTools.getVersionInfo(application);
	String userAgent = webSettings.getUserAgentString();
	
	// Structure the ClientInfo.
	ClientInfo clientInfo = new ClientInfo(application.getPackageName());
	//clientInfo.setAppicon(R.drawable.ic_launcher);
	clientInfo.setAppicon(applicationInfo.icon);
	clientInfo.setAppname(ManifestTools.getApplicationLable(application));
	clientInfo.setDeviceType(SdkConfig.Device.PHONE);
	clientInfo.setDeviceName(android.os.Build.MODEL);
	clientInfo.setAlias(android.os.Build.MODEL);
	clientInfo.setSdkVersion(android.os.Build.VERSION.SDK_INT);
	clientInfo.setMac(DeviceInfoManager.getMacAddress(application));
	
	// Webkit user-agent
	clientInfo.setUserAgent(userAgent);
	
	if (versionInfo != null)
	{
		clientInfo.setVersionCode(versionInfo.getVersionCode());
		clientInfo.setVersionName(versionInfo.getVersionName());
	}
	
	// FIXME: Take attention...
	clientInfo.addFlags(ClientInfo.FLAG_DEBUG | ClientInfo.FLAG_RELEASE);
	// clientContext.addFlags(ClientContext.FLAG_DEBUG);
	
	// TODO: 广告
	RockyConfig config = new RockyConfig.Builder(application)
		.clientInfo(clientInfo)
		.hasAdBanner(false)		// 显示积分Banner
		.hasAdPointsWall(true)	// 显示积分墙
		.build();
	
	RockySdk.getInstance().init(config);
}
 
Example 5
Source File: Global.java    From android-project-wo2b with Apache License 2.0 4 votes vote down vote up
/**
 * 系统初始化
 * 
 * @param context
 */
public static void init(Context context)
{
	if (RockySdk.getInstance().getContext() != null)
	{
		return;
	}

	Context application = context.getApplicationContext();
	
	// 用于获取浏览器代理
	WebView webview = new WebView(context);
	webview.layout(0, 0, 0, 0);
	WebSettings webSettings = webview.getSettings();
	
	ApplicationInfo applicationInfo = context.getApplicationInfo();
	
	VersionInfo versionInfo = ManifestTools.getVersionInfo(application);
	String userAgent = webSettings.getUserAgentString();
	
	// Structure the ClientInfo.
	ClientInfo clientInfo = new ClientInfo(application.getPackageName());
	//clientInfo.setAppicon(R.drawable.ic_launcher);
	clientInfo.setAppicon(applicationInfo.icon);
	clientInfo.setAppname(ManifestTools.getApplicationLable(application));
	clientInfo.setDeviceType(SdkConfig.Device.PHONE);
	clientInfo.setDeviceName(android.os.Build.MODEL);
	clientInfo.setAlias(android.os.Build.MODEL);
	clientInfo.setSdkVersion(android.os.Build.VERSION.SDK_INT);
	clientInfo.setMac(DeviceInfoManager.getMacAddress(application));
	
	// Webkit user-agent
	clientInfo.setUserAgent(userAgent);
	
	if (versionInfo != null)
	{
		clientInfo.setVersionCode(versionInfo.getVersionCode());
		clientInfo.setVersionName(versionInfo.getVersionName());
	}
	
	// FIXME: Take attention...
	clientInfo.addFlags(ClientInfo.FLAG_DEBUG | ClientInfo.FLAG_RELEASE);
	// clientContext.addFlags(ClientContext.FLAG_DEBUG);
	
	// TODO: 广告
	RockyConfig config = new RockyConfig.Builder(application)
		.clientInfo(clientInfo)
		.hasAdBanner(false)		// 显示积分Banner
		.hasAdPointsWall(true)	// 显示积分墙
		.build();
	
	RockySdk.getInstance().init(config);
}