Android:how 将 html 代码转换为图像并使用 ShareIntent 发送该图像?
Android:how to convert html code into image and send this image using ShareIntent?
我已经使用 webView 将内容显示和捕获为图像并使用共享选项发送。
但是我需要在不使用 webview 的情况下将 html 代码转换为图像。
请帮助我。
提前致谢。
可以有很多可能的解决方案。您可以通过显示全屏 Web 视图并以编程方式捕获设备的屏幕截图并通过后台服务发送数据来以某种方式实现它。
用于通过程序捕获屏幕截图;您可以使用以下 link:
http://amitandroid.blogspot.in/2013/02/android-taking-screen-shots-through-code.html
我是用 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);
}
});
和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;
}
查看此 SO 答案 。其中使用的库确实对从 HTML
生成位图有很大帮助
我已经使用 webView 将内容显示和捕获为图像并使用共享选项发送。
但是我需要在不使用 webview 的情况下将 html 代码转换为图像。
请帮助我。
提前致谢。
可以有很多可能的解决方案。您可以通过显示全屏 Web 视图并以编程方式捕获设备的屏幕截图并通过后台服务发送数据来以某种方式实现它。
用于通过程序捕获屏幕截图;您可以使用以下 link:
http://amitandroid.blogspot.in/2013/02/android-taking-screen-shots-through-code.html
我是用 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);
}
});
和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;
}
查看此 SO 答案 。其中使用的库确实对从 HTML
生成位图有很大帮助