Android:如何将HTML代码转换为图像并使用ShareIntent发送此图像?

Abd*_*wan 2 android android-intent android-bitmap

我已使用webView将内容显示和捕获为图像,并使用共享选项发送。
但是我需要一个无需使用webview即可将html代码转换为图像的功能。
请帮我。
提前致谢。

Abd*_*wan 6

我已经使用webView完成了此操作。

webview = (WebView) findViewById(R.id.webView1);

WebSettings settings = webview.getSettings();
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(false);
settings.setJavaScriptEnabled(true);
settings.setSupportMultipleWindows(false);

settings.setLoadsImagesAutomatically(true);
settings.setLightTouchEnabled(true);
settings.setDomStorageEnabled(true);
settings.setLoadWithOverviewMode(true);

WebView webview = (WebView) findViewById(R.id.webview);
WebView.enableSlowWholeDocumentDraw();

String RESULTDATA = "<html><body><h1>It's working</h1></body></html>";
if (!RESULTDATA.equals(null)) {
    Log.e("info", RESULTDATA);
    webview.loadData(RESULTDATA, "text/html", null);
}

circleButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

        shareResultAsImage(webview);
    }
});
Run Code Online (Sandbox Code Playgroud)

并且shareResultAsImage(WebView)方法需要定义。

private void shareResultAsImage(WebView webView) {
    Bitmap bitmap = getBitmapOfWebView(webView);
    String pathofBmp = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "data", null);
    Uri bmpUri = Uri.parse(pathofBmp);
    final Intent emailIntent1 = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent1.setType("image/png");
    emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);

    startActivity(emailIntent1);
}

private Bitmap getBitmapOfWebView(final WebView webView) {
    Picture picture = webView.capturePicture();
    Bitmap bitmap = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawColor(Color.WHITE);
    picture.draw(canvas);
    return bitmap;
}
Run Code Online (Sandbox Code Playgroud)